Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript socket.io重新连接socket.socket.connect不';行不通_Javascript_Node.js_Socket.io - Fatal编程技术网

Javascript socket.io重新连接socket.socket.connect不';行不通

Javascript socket.io重新连接socket.socket.connect不';行不通,javascript,node.js,socket.io,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

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

它根本没有从第二次连接中得到任何反馈

我想我知道这为什么不起作用了。对于服务器端代码,这对于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);

我只是通过添加

  <!DOCTYPE html>


在html的顶部,这是您的客户机代码还是服务器代码?您希望代码的其他部分在什么情况下执行?脚本的这一部分位于服务器端@BlubberGuy22如果需要检查第一个连接,我有两个游戏需要不同的连接。我正在考虑更改代码逻辑,并打开一个连接。管理这两场比赛,但我想知道为什么我被困在这里。