Node.js 只有当消息从服务器发送到客户端时,socket.io才会变慢,而从服务器发送到客户端的消息速度非常快

Node.js 只有当消息从服务器发送到客户端时,socket.io才会变慢,而从服务器发送到客户端的消息速度非常快,node.js,express,nginx,socket.io,Node.js,Express,Nginx,Socket.io,问题: 当客户机向服务器发送消息时,向另一个客户机发送消息时会出现延迟,而向发送消息的客户机发送相同的消息时会出现超快的延迟 i、 e 客户端A-->服务器-->客户端A超高速 客户端A-->服务器-->客户端B稍微慢一点 我正在使用socket.io NodeJs/Express、nginx web服务器(在Apache相同版本中测试) 我在safari和mobile chrome中注意到了这一点 下面的编辑是nginx配置 worker_processes 1; error_log lo

问题:
当客户机向服务器发送消息时,向另一个客户机发送消息时会出现延迟
,而向发送消息的客户机发送相同的消息时会出现超快的延迟
i、 e
客户端A-->服务器-->客户端A超高速
客户端A-->服务器-->客户端B稍微慢一点
我正在使用socket.io NodeJs/Express、nginx web服务器(在Apache相同版本中测试)

我在safari和mobile chrome中注意到了这一点
下面的编辑是nginx配置

worker_processes  1;
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
pid     /var/run/nginx.pid;
events {
    worker_connections  1024;
}
error_log /usr/local/apps/nginx/var/log/error_log debug;
http {
    include    mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    sendfile    on;
        tcp_nodelay on;
    keepalive_timeout  65;
    client_max_body_size 200M;      
    server_names_hash_bucket_size 64;   
    server_tokens off;  
    include /usr/local/apps/nginx/etc/conf.d/*.conf;
}

server {
    listen      *:443 ssl ;
    server_name wsapidev.sample.com www.wsapidev.sample.com;    
    error_log   /usr/local/apps/nginx/var/log/wsapidev.sample.com.err;
    access_log  /usr/local/apps/nginx/var/log/wsapidev.sample.com.log main; 
     ssl                            on;
    ssl_certificate             /etc/ssl/cert/wsapidev.sample.com.crt;
    ssl_certificate_key         /etc/ssl/private/wsapidev.sample.com.key;
    ssl_dhparam             /etc/ssl/private/dhparam.pem;   
location  /socket {       
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";   
      proxy_pass    http://127.0.0.1:44451/socket;
        }
}

您是否100%确定您获得了socket.io的webSocket连接,而不仅仅是轮询?在某些情况下,客户端/服务器版本不匹配或网络基础结构配置错误可能会阻止正确的socket.io连接,该连接应该是双向快速的,并可能最终导致客户端轮询,这可能表现为从服务器到客户端的数据传输速度较慢。是的,我非常确定这是websocket连接,仅websocket作为传输我还检查了标头响应,它在我测试socketIo的所有浏览器中都升级为websocket(this.server,{pingTimeout:60000,pingInterval:10000,传输:['websocket'],路径:“/socket”,allowUpgrades:true});只有当服务器将消息发送到其他客户端时,速度才会很慢,而当发送到同一客户端时,速度会非常快,因为您的客户端正在忙着做其他事情,无法立即自由地处理传入的数据?不,我的服务器什么都不做,因为我的项目处于开发阶段,只有两个客户端正在运行以进行测试。我阅读了关于Nagle的算法,因为当我一起发送多条消息时,所有消息都是在同一时间收到的(有延迟),但为什么问题只是像我在safari中所说的那样,从服务器到其他客户端,而到同一个客户端是超级快速的(客户端A safari到客户端B chrome超级快速,客户端A chrome到safari延迟,chrome到chrome超级快速)你在说有多少延误?