socket.io 响应2秒太慢了

1.怎么防止socket.io请求被抓包
2.为何我的socket.io的请求是这样的如图:两个请求一个是post、一个get,一个几十毫秒,一个一秒多
3.有做过聊天室的师兄可以私聊,带酬劳
4.socket集群相关和断线重连机制,看了很多文章暂时弄了一个单台多节点搭配ip_hash、nginx负载的服务,还没有压力测试,服务器配置是4核8g内存的。
5.市面上很多的直播app,直播间聊天室有用php workerman 也有nodejs的socketio的,市面上各个平台的技术感觉差不多,一线的优化和高并发做的比较强大。图片描述

图片描述

图片描述

图片描述

图片描述

阅读 5.9k
1 个回答

首先要明确一个问题。谈到【高并发】和典型【C10K】的问题时。跳出程序看问题。

世界NO.1的开发语言,给你台128M内存的VPS你该慢还是要慢。
世界NO.1配置的服务器,给你128kbps的出口带宽,你该慢还是慢。

然后回答问题。

1.怎么防止socket.io请求被抓包

无解,只要有网路请求就能被抓包。你唯一能做的是把包加密。新问题,如何防止解密。无解,加密的逆向过程叫解密,有加密是一定有解密的算法的,如果你用HTTPS只能防止中间人,并不能防止本地用户抓包。另外一个如果用私有化的协议,抱歉,还是不行,因为你用socket.io必然是web型应用?那所有的加密的操作包括加密算法是否也是在网页里公开了?
结论:尽可能的增加抓包、解密的成本让抓包、尝试解密者投入大于产出。谁还会去解你。

2.为何我的socket.io的请求.....

不知道你的js怎么写的。要不就是你测试使用的浏览器不支持websocket,你截图这是socket.io的LONGPOLL模式。浏览器不支持websocket的情景下首先考虑flash代理,不支持flash只能使用longpoll模式(具体名词百度)

4.socket集群相关和断线重连机制

代码逻辑层面的问题。最简单的前端一个haproxy或nginx抗。反代到多台backend。中间有Gateway或其他逻辑处理保存各个客户端的连接。断开后删除。给客户端发送消息先找到客户端连接哪个server然后命令server发出数据。

5.市面上很多的直播app,直播间聊天室有用php workerman 也有nodejs的socketio......

视频流媒体不仅仅是语言和技术层面的问题了。有专业的RTMP解决方案现成的开源解决方案遍地都是,贵在哪个稳定罢了。nodejs/php目前也就做做弹幕和实时聊天罢了。真正用nodejs/php处理实时视频流媒体数据的,恕我孤陋寡闻,目前没见过。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏