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;
}