socket.io reconnect socket.socket.connect不起作用

时间:2014-08-06 14:57:09

标签: javascript node.js socket.io

很抱歉再次发布此问题,但大多数相关帖子都没有回答我的问题。 我有问题与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});
    }  
};

它根本没有从第二个连接获得任何反馈

2 个答案:

答案 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);