人!
我构建了一个基于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的一个子协议,但对我来说并不起作用。
有人知道问题在哪里吗?
答案 0 :(得分:0)
似乎Nginx并未将客户端宣布的WebSocket子协议转发给后端WAMP路由器。
尝试将此添加到您的Nginx conf:
proxy_set_header Sec-WebSocket-Protocol $http_sec_websocket_protocol