socket.io-redis 如何去使用 const io = require('socket.io')(3000); const redisAdapter = require('socket.io-redis '); io.adapter(redisAdapter({ host: 'localhost', port: 6379 })); 通过使用socket.io-redis 适配器运行socket.io 你可以在不同的进程或者服务器上运行多个 per node }); 客户端错误处理 接收Redis适配器实例的 pubClient 和 subClient 属性来订阅它的'error'时间: const adapter = require('socket.io-redis 和 subClient发布的错误,也将被转发到适配器实例: const io = require('socket.io')(3000); const redisAdapter = require('socket.io-redis , that has a password, 使用订阅/发布属性代替密码 const redis = require('redis'); const redisAdapter = require('socket.io-redis
解决方法:使用redis的发布与订阅功能与socket.io-redis开源库,实现节点间消息推送。 3.安装nodejs模块 socket.io-redis sudo npm install socket.io-redis 4.在原来socket.io应用中初始化io的位置加入io的redis适配器: var redis = require('socket.io-redis'); io.adapter(redis({ host: 'localhost', port: 6379 })); 5.
: var io = require('socket.io')(3000); var redis = require('socket.io-redis'); io.adapter(redis({ host : 'localhost', port: 6379 })); 总结起来就是你如果想在进程间或者节点之前发送信息,那么就需要实现自己实现一个socket.io-adapter或者利用官方提供的socket.io-redis 我们这里利用socket.io-redis 这个adapter 来实现消息的广播,最终的服务端代码如下: const express = require('express'); const socketRedis = require('socket.io-redis'); const os = require('os'); const app = express(); const http = require( 在使用socket.io-redis的时候一定要注意,在join和leave房间的时候一定要使用adapter提供的remoteJoin和remoteLeave方法,不然多个节点间的数据同步有问题,这个被坑了好久
(以安全的方式传递Session)、socket-logger(JSON格式的记录日志工具)、websocket.MQ(可靠的消息队列)、socket.io-mongo(使用MongoDB的适配器)、socket.io-redis
Socket.IO server socket.io-client-javajava客户端实现,可用于Android SIOSocket iOS客户端实现 socket.io-mongoMongoDB的适配器 socket.io-redis
可以在请求处理的第二层分发处做iphash,即上帝进程路由的方式,即第三种; 也可以在请求处理的终端做iphash,即服务端路由的方式,也就是第二种; 同时共享session也同样可以实现,借助socket.io-redis