我应该使用nginx作为WAMP的代理吗?

时间:2017-12-29 07:30:43

标签: nginx websocket proxy wamp-protocol

人!

我构建了一个基于WebSocket的聊天应用程序。作为后端,我使用PHP和nginx作为WebSocket连接的代理。

搜索关于WS的PHP库,给了我一个棘轮。此工具支持WAMP协议。关于它的一些事情:http://wamp-proto.org/why/

嗯,我已经决定使用这个协议 - 它似乎很有用。我以标准方式调整了nginx用于代理WebSocket连接。对于在前端/后端使用WebSocket的常见问题 - 一切都还可以。

但是,如果我开始在后端使用WAMP并尝试在前端使用autobahn.js作为WAMP,我每次都会捕获 426 No Sec-WebSocket-Protocols for supported 作为响应。在PHP我看到来自nginx的连接没有收到。所以,据我所知,nginx没有以正确的方式处理与WAMP子协议的连接。

所以,我不明白,我应该使用nginx作为WAMP的代理吗? WAMP只是WebSocket的一个子协议,但对我来说并不起作用。

有人知道问题在哪里吗?

1 个答案:

答案 0 :(得分:0)

似乎Nginx并未将客户端宣布的WebSocket子协议转发给后端WAMP路由器。

尝试将此添加到您的Nginx conf:

proxy_set_header Sec-WebSocket-Protocol $http_sec_websocket_protocol

请参阅:https://stackoverflow.com/a/36506746/884770