D'accord, j'ai la configuration suivante: https://i.stack.imgur.com/4T9SX.jpg (Si l'image ci-dessous est trop petit)Socket.io réseau local ne se connecte pas
Le problème est que l'ordinateur 2 ne peut pas se connecter avec socket.io à ordinateur 1.
Oui i inclus dans l'ordinateur socket.io 2:
Des idées sur pourquoi l'ordinateur 2 ne peut pas se connecter à l'ordinateur 1 avec socket.io alors que ping peut?
Informations supplémentaires: - Version 1.4.5 Socket.io - Les deux ordinateurs sont Windows 10 - Ordinateur 2 javascript est Phonegap - Ordinateur 2 se connecte via wi-fi, ordinateur 1 via Ethernet
Salutations
EDIT code du client (ordinateur 2, init est appelé au démarrage):
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();
}));
}
code de serveur (ordinateur 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);
});
});
code approprié du navigateur (ordinateur 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;
});
Je veux savoir pourquoi l'ordinateur 2 ne peut même pas se connecter au serveur, Le fichier console.log ("Connecté à la socket!"); n'est même pas appelé
NOTE: Si j'exécute le javascript du client (ordinateur 2) sur l'ordinateur 1, cela fonctionne parfaitement, se connecte et reçoit des données! REMARQUE: Je l'ai testé avec l'ordinateur 1 (serveur), son pare-feu s'est éteint et cela a fonctionné parfaitement!
Nous devons voir le code réel pour les deux ordinateurs (collé sous forme de texte, pas d'images) en cette question. – jfriend00
Vous utilisez un chemin personnalisé avec 'io.connect()' dans le client, mais vous n'avez pas spécifié que vous écoutiez ce chemin personnalisé sur votre serveur. Soit supprimer le chemin personnalisé du client (je ne vois aucune raison pour cela) ou ajouter le chemin personnalisé à la configuration de votre serveur comme indiqué ici: http://stackoverflow.com/questions/29511404/connect-to-socket-io-server -with-specific-path-and-namespace – jfriend00
Pouvez-vous essayer un autre port? Est-il peut-être bloqué par les paramètres du pare-feu? – user835611