Phaser.js 中的 Node.js 和 Socket.io 未连接 socket.io/?EIO=3&transport=polling
Posted
技术标签:
【中文标题】Phaser.js 中的 Node.js 和 Socket.io 未连接 socket.io/?EIO=3&transport=polling【英文标题】:Node.js and Socket.io in Phaser.js not connecting socket.io/?EIO=3&transport=polling 【发布时间】:2017-06-10 22:16:31 【问题描述】:我能够运行我的 node.js 服务器,我的 phaser.js 游戏运行,但是当游戏运行时我没有得到“连接的”console.log。相反,我从客户端收到此错误消息:
enter image description here
socket.io-1.4.5.js:1 GET http://192.168.128.184:8080/socket.io/?EIO=3&transport=polling&t=LdMR6Ro net::ERR_CONNECTION_REFUSED
服务器:
var serverPort = 8080;
console.log("Initializing Server.");
var express = require('express');
var connect = require('connect');
var app = express();
var serv = require('http').Server(app); //.createServer(app);
var io = require('socket.io').listen(serv); //(serv,);
console.log("Starting Server.");
var serveStatic = require('serve-static');
connect().use(serveStatic(__dirname)).listen(serverPort, function()
console.log('Server running on ' + serverPort + ' !');
);
app.get('/',function(req, res)
res.sendFile(__dirname + '/index.html');
);
serv.listen(8081);
var SOCKET_LIST = ;
io.on('connection',function(socket)
console.log("A user is connected");
);
io.sockets.on('connection', function(socket)
console.log('Socket connection');
);
客户
var local = "http://" + document.location.host + ":8081";
var socket = io().connect(local);
【问题讨论】:
【参考方案1】:在您的客户端代码中,您使用的是io().connect(local)
,但是使用指定地址与您的变量进行连接的正确方法是io.connect(local)
。
此外,如果 document.location.host 是您用于获取页面的地址的一部分,则它会包含“:8080”,因此您需要将其删除。你可以试试document.location.host.split(':')[0]
【讨论】:
var local = "http://" + document.location.host + ":8081"; var socket = io.connect(local);好的,现在尝试:仍然没有连接 在使用io()
之前,它使用自动发现功能,因此它忽略了您传入的地址。你说没有联系?这是否意味着您遇到了类似的错误?
抱歉,客户端出现同样的错误。服务器端无console.log连接显示
相同,仍然尝试连接到 8080 或同样的错误但现在连接到 8081?如果您在连接到 8081 时遇到同样的问题,那么问题似乎并不在于您的应用程序,因为我实际上是复制+粘贴了您的代码,进行了此更改并且工作正常。您确定没有阻止此端口上的连接吗?
很确定连接没有被使用,你能在 phaser.js 中使用它吗?以上是关于Phaser.js 中的 Node.js 和 Socket.io 未连接 socket.io/?EIO=3&transport=polling的主要内容,如果未能解决你的问题,请参考以下文章
从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
使用 Phaser.js 和 Ionic 开发游戏应用程序(缓慢/不稳定的渲染)