CabloyJS v3.2.0引入了Socket IO
,并且实现了统一的在线推送
和离线推送
机制
效果演示
1. IM
用户向系统发送一条消息,系统通过websocket在线通道
向用户推送一条回复
2. 进度条
系统通过websocket在线通道
向前端实时推送任务的进度
项目配置
升级到该版本,请更新以下项目配置:
1. 增加redis连接信息
请依次修改测试环境
、开发环境
、生产环境
的配置,这里以开发环境
为例
{project}/src/backend/config/config.local.js
// redis ... const __redisConnectionDefaultIO = Object.assign({}, __redisConnectionDefault, { keyPrefix: `io_${appInfo.name}:`, }); config.redisConnection = { ... io: __redisConnectionDefaultIO, }; config.redis = { clients: { redlock: config.redisConnection.default, ... io: config.redisConnection.io, }, };
2. Nginx配置
在Nginx配置中添加/socket.io/
的转向
{project}/docker-compose/config/nginx/conf.d/nginx.conf
... location /socket.io/ { proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://$node_ip:$node_port$request_uri; proxy_redirect off; proxy_buffer_size 64k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; }