2017-01-25 43 views
0

我能夠運行我的node.js服務器,我的phaser.js遊戲運行但我沒有「連接」 console.log當遊戲運行時。我不是從客戶端收到此錯誤信息:Phaser.js中的Node.js和Socket.io未連接socket.io/?EIO=3&transport=polling

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網:: ERR_CONNECTION_REFUSED

SERVER:

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

回答

2

在您的客戶端代碼中您正在使用io().connect(local)但是,使用指定地址與變量連接的正確方法是io.connect(local)

另外,如果document.location.host是您用來獲取頁面的地址的一部分,它將包含「:8080」,因此您需要將其刪除。你可以嘗試像document.location.host.split(':')[0]

+0

var local =「http://」+ document.location.host +「:8081」; var socket = io.connect(local); 現在確定:仍然沒有連接 – JJWALLACE

+0

使用'io()'之前,它使用自動發現,這就是爲什麼它忽略了你傳入的地址。你說沒有關係?這是否意味着您收到類似的錯誤? – popstarfreas

+0

對不起,在客戶端有同樣的錯誤。服務器端沒有console.log連接顯示 – JJWALLACE

相關問題