python websocket异步高并发_websoket.io 高并发 实现

本文记录了一次优化WebSocket高并发问题的过程,包括调整Socket.IO的传输模式为WebSocket,使用命名空间减少资源传输,通过Node.js的多进程和Nginx负载均衡提高CPU利用率,以及设置系统参数、心跳检测和数据共享策略。优化后,单台服务器可稳定支持上千用户。
摘要由CSDN通过智能技术生成

用websocket搭个聊天室实时互动小游戏,确实非常方便,但在线人数多了 就没那么简单了。一到300人在线就开始掉了。后来经过调整 终于好多了。以下是改进的方案记录:

调整websocket.io的传输方式

websoket.io Socket.IO 是一个功能非常强大的框架,能够帮助你构建基于 WebSocket 的跨浏览器的实时应用。支持主流浏览器,多种平台,多种传输模式。

关于传输模式主要有两种1.polly 轮询模式, 2.websocket 模式。

默认为先轮询握手连接后再升级为websocket。 轮询的效率肯定是低下的,修改配置参数直接用websokect 的方式传输。发现很效果差很多,满意!

var io = require('socket.io')({ "transports":['websocket', 'polling']})

判断传输方式的源码位置:

使用命名空间的功能

可以区分不同的命名空间来特定针对性的发消息,对于一些不是全局需要接受的消息就加上命名空间,可以极大的节约资源的传输。

//创建 server命名空间

var ServerIo = io.of('/server').on('connection', function(socket){

socket.on('ready',function(roomId,data) {

pub.publish(roomId, JSON.stringify({

"event": 'ready',

&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值