好的,我有以下设置:https://istack.dev59.com/4T9SX.webp(如果下面的图片太小)。
问题在于电脑2无法通过socket.io连接到电脑1。
额外信息: - Socket.io版本1.4.5 - 两台计算机都是Windows10 - 计算机2的JavaScript在Phonegap中 - 计算机2通过Wi-Fi连接,计算机1通过以太网连接
问候
编辑 客户端代码(计算机2,init在启动时调用):
我想知道为什么电脑2甚至无法连接到服务器,控制台中的console.log("Connected to socket!");甚至没有被调用。
注意:如果我在电脑1上执行客户端(电脑2)的javascript代码,则完美运行,建立连接并接收数据!
注意:我测试了电脑1(服务器),关闭了它的防火墙,完美地运行了!
是的,我在电脑2中包含了socket.io:
任何想法为什么当ping可以时,socket.io不能连接到计算机1上的计算机2?额外信息: - Socket.io版本1.4.5 - 两台计算机都是Windows10 - 计算机2的JavaScript在Phonegap中 - 计算机2通过Wi-Fi连接,计算机1通过以太网连接
问候
编辑 客户端代码(计算机2,init在启动时调用):
KerstAppHome.prototype.init = function(){
var address = 'http://192.168.2.120:2017';
console.log("Connecting to: " + address);
this.socket = io.connect(address);
this.socket.on('connect', this.proxy(function(){
console.log("Connected to socket!");
this.socketIsConnected = true;
this.socket.on('disconnect', this.proxy(function(){
console.log("Disconnected from socket!")
this.socketIsConnected = false;
}));
this.socket.on('musicBlob', this.proxy(this.onMusicBlobReceived))
}));
};
KerstAppHome.prototype.onMusicBlobReceived = function(musicBlob){
console.log("RECEIVED SOMETHING");
this.audioCtx.decodeAudioData(musicBlob).then(this.proxy(function(audioBuffer) {
var source = this.audioCtx.createBufferSource();
source.buffer = audioBuffer;
source.connect(this.audioCtx.destination);
source.start();
}));
}
来自服务器的代码(计算机1):
var port = 2017;
var io = require('socket.io')(port);
console.log("Listening for socket connections on port " + port);
io.on('connection', function (socket) {
console.log("Connection made!");
socket.on('musicBlob', function(musicBlob){
socket.broadcast.emit('musicBlob', musicBlob);
});
});
来自浏览器的相关代码(计算机1):
var socket = io.connect('http://localhost:2017');
var socketIsConnected = false;
socket.on('connect', function(){
console.log("Connected to server!");
socketIsConnected = true;
});
socket.on('disconnect', function(){
console.log("Disconnected from server!")
$scope.socketIsConnected = false;
});
我想知道为什么电脑2甚至无法连接到服务器,控制台中的console.log("Connected to socket!");甚至没有被调用。
注意:如果我在电脑1上执行客户端(电脑2)的javascript代码,则完美运行,建立连接并接收数据!
注意:我测试了电脑1(服务器),关闭了它的防火墙,完美地运行了!
netstat -ant
输出?可能是 socket.io 服务器正在侦听与面向网络的不同接口。 netstat 输出将提供更多详细信息。 - Surojit