[英]Nginx HTTP and 2 TCP on port 80
我正在做一些我有两个网络套接字的事情,一个用于客户端,一个用于服务器,正在与端口3000上的HTTP节点服务器一起使用,我在这里做错了吗? 还是不可能?
Nginx的配置:
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 };
我认为您应该进行一些修改:删除位置/中的升级设置
并注意您请求的路径是/ ws ,但是nginx.conf中的位置正则表达式是/ ws / 。 保持不变。
用它来获得一个套接字:
socket = openSocket("ws://example.com/ws/", {transports: ['websocket']})
添加此代码以查看ws连接是否已建立。
socket.on('connect', function () {
console.log('connected!');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.