我有socket.io/node.js的问题。在使用" forceNew true"
切换服务器后,我的客户端无法从服务器接收消息客户端的我的脚本如下所示:
var socket;
function connect_server(host){
socket = new io.connect('//'+host+':843', {
'forceNew': true,
'transports': ['websocket']
});
}
connect_server('server1.domain.com'); // First time connect Server1
function disconnect(){
socket.emit('forceDisconnect');
}
socket.on('messages', function (data) {
console.log('Message from Server: '+data);
});
<div onclick="disconnect(); connect_server('server2.domain.com');">Connect to Server2</div>
<div onclick="socket.emit('emit_server', 'Test'); ">Send Message</div>
我的客户端连接到&#34; server1.domain.com&#34;并可以发送消息给&#34; server1.domain.com&#34;通过&#34; socket.emit&#34;。客户端可以从Server1接收消息。它运行完美。没问题。
问题:当我的客户端连接到&#34; server2.domain.com&#34;他可以向Server2发送消息,但Server2无法向客户端发送消息。客户端不接收来自Server2的任何消息。
有人知道解决方案吗?
客户端的我在服务器端nodejs v4.2.6 + Option&#34; io.origins(&#39; :&#39;);&#34;
答案 0 :(得分:0)
此解决方案有效。 “socket.on”-Listener必须在connect_server-function内更新。
function connect_server(host){
socket = new io.connect('//'+host+':843', {
'forceNew': true,
'transports': ['websocket']
});
socket.on('messages', function (data) {
console.log('Message from Server: '+data);
});
}