我正在尝试像这样在生产环境中设置套接字:
客户端:
import openSocket from 'socket.io-client';
function handleSomething() {
let socketServer = 'https://staging.app.xxx.eu:9999';
const socket = openSocket(socketServer);
socket.on('calendlyHook', () => {
console.log("*** HERE");
...
socket.emit('closeSocket');
socket.close();
socket.removeAllListeners();
});
}
服务器:
const app = require('express')();
const http = require('http').createServer(app);
const io = require('socket.io')(http);
function openSocket() {
io.close();
io.set('origins', '*:*');
io.on('connection', (client) => {
console.log('Socket connected');
client.on('closeSocket', () => {
io.close();
io.removeAllListeners();
console.log('Socket closed');
});
});
const port = 9999;
io.listen(port);
console.log('*** listening on port ', port);
}
然后在服务器端,另一个函数尝试以下操作:
io.emit('calendlyHook');
或
io.sockets.emit('calendlyHook');
我在生产中遇到了几个问题(在本地主机上都没有发生):
我没有在该URL上设置任何Web服务器代理。
这是怎么了?谢谢!