很抱歉再次发布此问题,但大多数相关帖子都没有回答我的问题。 我有问题与socket.io使用多个连接 我没有得到“socket.socket.connect”方法,但我从第一个连接获得反馈。
这是我的结构:
var iosocket = null;
var firstconnection = true;
var ip = "http://xxx.xxx.xxx"
var ipPort = 8081
function callSocket() {
iosocket = null;
iosocket = io.connect(ip,{port:ipPort,rememberTransport:true, timeout:1500});
if (firstconnection) {
firstconnection= false;
iosocket = io.connect(ip,{port:ipPort,rememberTransport:true, timeout:1500});
iosocket.on('connect', function () {console.log("hello socket");});
iosocket.on('message', function(message) {});//end of message io.socket
iosocket.on('disconnect', function () {console.log("disconnected");});
} else {
if (iosocket.connected === true) {
console.log("heyhey still connected");
iosocket.disconnect();
}
iosocket.socket.connect(ip,{port:ipPort,rememberTransport:true,timeout:1500});
}
};
它根本没有从第二个连接获得任何反馈
答案 0 :(得分:1)
我只是通过添加
来解决IE8错误 <!DOCTYPE html>
位于html顶部
答案 1 :(得分:0)
我想我知道为什么这不起作用。对于服务器端代码,这对socket.io来说似乎不正确。 connect
方法用于客户端而非服务器。我想你正试图让服务器监听端口。在这种情况下,你应该这样做:
var socket = require('socket.io');
var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);
var io = socket.listen(server);
io.on('connection', function (client) {
client.on('someEvent', function(someVariables){
//Do something with someVariables when the client emits 'someEvent'
io.emit('anEventToClients', someData);
});
client.on('anotherEvent', function(someMoreVariables){
//Do more things with someMoreVariables when the client emits 'anotherEvent'
io.emit('anotherEventToClients', someMoreData);
});
});
server.listen(8000);