ich in meinem Express
Server fürSocket.io socket.broadcast.to funktioniert nicht
userbase = {'Fitz': '84Iw3MNEIMaed0GoAAAD'}; //Exapmle user to receive message and associated socket id
//Sending message to Example user
socket.on('send_msg',function(data_from_client){
//Testing for receivers socketId
console.log(userbase[data_from_client.to_user]);//This returns the socket id for Fitz in userbase successfully i.e 84Iw3MNEIMaed0GoAAAD
socket.broadcast.to(userbase[data_from_client.to_user]).emit('get_msg',{msg:data_server.msg});
});
Überraschung Überraschung, als ich Setup einen Handler für dieses Ereignis auf meiner cliens Seite haben 'get_msg'
ich nichts.
.factory('SocketFctry',function(){
var socket = io('http://localhost:3002')
return socket;
})
.controller('ChatCtrl', function($scope,SocketFctry) {
SocketFctry.on('get_msg',function(received_message){
console.log(received_message);
$scope.$apply();
})
});
Meine anderen Client-Side-Handler funktionieren gut.
Meine Version von socket.io ist 1.3.7. Am fehlt mir hier etwas?
I unsderstand jeweils mit Client in den Raum mit seiner Buchse # id ... Ihre Lösung zu verwenden 'socket.in (socket.id) automatisch hinzugefügt' für mich gearbeitet, aber ich m stapste noch, dass 'socket.broadcast.to (socket.id)' nicht funktioniert. Ich würde wirklich gerne verstehen warum, bevor ich die Antwort akzeptiere. Irgendwelche Ideen? – yaboiduke
Werfen Sie einen Blick auf diese http://stackoverflow.com/questions/6873607/socket-io-rooms-difference-between-broadcast-to-and-sockets-in-#answer-6877212 – gyc