我正在做的事情我有两个websockets,一个用于客户端,一个用于服务器,与端口3000的HTTP节点服务器一起使用,我在这里做错了吗?或者这不可能吗?
nginx config:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /ws/ {
proxy_pass http://localhost:8000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
api.js
import openSocket from 'socket.io-client';
const socket = openSocket('ws://example.com/ws');
function roomSubscribe(roomId, cb) {
socket.on('roomInfo', data => cb(null, data));
socket.emit('getRoom', {'roomId': roomId});
}
function sendMessage(content) {
socket.emit('sendMessage', content);
}
export { roomSubscribe, sendMessage };
答案 0 :(得分:0)
我认为你应该做一些修改: 删除位置/
中的升级设置请注意,您要求的路径为 / ws ,但nginx.conf中的位置正则表达式为 / ws / 。保持不变。
用它来获取套接字:
.get()
添加此代码以查看是否构建了ws连接。
socket = openSocket("ws://example.com/ws/", {transports: ['websocket']})