【解决】nginx + socket.io ,能连接但不响应事件

环境

nginx、socket.io、域名

nginx中的配置

server { 
    listen 80; 
    server_name app.example.com;  

    location /socket.io { 
     proxy_pass http://127.0.0.1:5000;  
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
    } 
} 

 

问题

socket客户端使用端口(http://192.168.10.11:5000)可以连接并收发消息:

var socket = io('http://192.168.10.11:5000'); 

但使用域名配置可以连接却不能收发消息:

var socket = io('http://app.example.com/socket.io/'); //不可以
var socket = io('http://app.example.com/');  //可以

 

抓包发现了 ‘Invalid namespace’ 的信息,仔细对比发现  ,多了  ‘socket.io’ 的路径!!

程序员何苦为难程序员!
原文地址:https://www.cnblogs.com/xiaotiannet/p/15010168.html