Node.js 和 Phaser.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
我可以 运行 我的 node.js 服务器,我的 phaser.js 游戏 运行 但我没有 'connected' console.log游戏 运行s。相反,我从客户端收到此错误消息:
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);
在您的客户端代码中,您使用的是 io().connect(local)
,但是使用指定地址与您的变量进行连接的正确方法是 io.connect(local)
。
此外,document.location.host 将包含“:8080”,如果它是您用来获取页面的地址的一部分,因此您需要将其删除。你可以试试 document.location.host.split(':')[0]
我可以 运行 我的 node.js 服务器,我的 phaser.js 游戏 运行 但我没有 'connected' console.log游戏 运行s。相反,我从客户端收到此错误消息:
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);
在您的客户端代码中,您使用的是 io().connect(local)
,但是使用指定地址与您的变量进行连接的正确方法是 io.connect(local)
。
此外,document.location.host 将包含“:8080”,如果它是您用来获取页面的地址的一部分,因此您需要将其删除。你可以试试 document.location.host.split(':')[0]