如何在libwebsockets客户端和像Nginx这样的websocket服务器之间通信?

如何在libwebsockets客户端和像Nginx这样的websocket服务器之间通信?,nginx,websocket,network-programming,protocols,libwebsockets,Nginx,Websocket,Network Programming,Protocols,Libwebsockets,我尝试实现一个websocket客户端(在C中使用libWebSocket,这不是一个选项)。例如,我在库中使用了给定的。 我的websocket客户端实际上与测试服务器.c配合得很好。但是我在与nginx服务器通信时遇到了一些麻烦 据我所知,由于nginx不知道我的websocket客户端的子协议,所以handshack的结局并不好。 看起来,就像在test client.c中一样,我正在实现自己的子协议(使用自己的名称和回调函数) 我的问题是: 有没有办法不在libwebsockets中使

我尝试实现一个websocket客户端(在C中使用libWebSocket,这不是一个选项)。例如,我在库中使用了给定的。 我的websocket客户端实际上与测试服务器.c配合得很好。但是我在与nginx服务器通信时遇到了一些麻烦

据我所知,由于nginx不知道我的websocket客户端的子协议,所以handshack的结局并不好。 看起来,就像在test client.c中一样,我正在实现自己的子协议(使用自己的名称和回调函数)

我的问题是:

  • 有没有办法不在libwebsockets中使用特定的websocket子协议?

  • 如果没有,我是否应该实现现有的WAMP(客户端)或类似的东西?(我不想重新发明轮子…)

  • 如果没有,是否存在一个“默认”websocket子目录,我可以将其指定给nginx,并在其中与我的websocket客户端兼容?(我只是对我的客户端执行一些简单的发送/接收操作。实现一个libWebSocket客户端似乎完全没有用,如果它只能与libWebSocket服务器通信)

  • 我的问题是否相关?如果不是,为什么?我错过了什么?

感谢您的帮助。
谢谢

正如LibWebSocket设计器Andy()所讨论的,使其工作的最简单方法是在定义websocket子协议客户端的结构中不命名子协议:

/* list of supported sub-protocols and callbacks */
static struct lws_protocols ws_protocols[] = {
        { NULL, ws_callback, 0, 128, },
        { NULL, NULL, 0, 0 } /* end */
};

Libwebsockets客户端不尝试在标头中与
sec websocket protocol
进行协商,握手在nginx中可以正常工作。

正如与Libwebsockets设计器Andy()讨论的那样,最简单的方法是在定义websocket子协议客户端的结构中不命名子协议:

/* list of supported sub-protocols and callbacks */
static struct lws_protocols ws_protocols[] = {
        { NULL, ws_callback, 0, 128, },
        { NULL, NULL, 0, 0 } /* end */
};
Libwebsockets客户端不尝试在头中与
sec-websocket协议
协商,握手在nginx中可以正常工作