我有一个在nginx反向代理下运行的nodejs socket.io应用程序。
我的nginx配置如下:
location ~ ^/(online|socket\.io) {
proxy_pass http://localhost:8888;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
这似乎有效,我的nodejs应用程序可以很好地获取连接。在服务器端socket.io我有以下内容:
io.of('/online').on('connection', function(socket){
这似乎工作正常,并且'连接'事件正在解雇
当我尝试从服务器向客户端发出事件时出现问题:
socket.join("users");
io.sockets.in("users").emit("got_users",users);
' got_users'事件未被客户接收。在客户端,我有以下内容:
a4e.socket=io.connect('http://www.example.com/online');
这似乎工作正常,但随后:
a4e.socket.on("got_users",function(online_users){
这并没有拿起" got_users"事件,无论我尝试什么。
非常感谢任何帮助。
答案 0 :(得分:1)
我终于弄明白了,接下来的一行:
io.sockets.in("users").emit("got_users",users);
应替换为:
io.of("/online").in("users").emit("got_users",users);
然后它有效。