2011-10-18 2 views
1

실시간 업데이트 메커니즘 : 사용자 쓰기 -> PHP는 mysql에 저장 db -> php nodeJS에 정보 보내기 -> nodeJS 변경 사항을 모든 가입자에게 보냄 -> 다른 사람이 알아 차릴 수 있음 실시간.포트를 통해 브로드 캐스트 할 nodeJS socket.io 서버

Socket.io 서버는 잘 작동하며 포트 8080에서 실행됩니다. 포트 80에서 실행되는 노드 http 서버가 있습니다. http 서버에서 트리거 메시지를 받고 모든 socket.io 클라이언트에 메시지를 보내려면 어떻게해야합니까? 즉 보낼 것이기 때문 broadcast이 다른 것을

io.sockets.send("Messages")

참고 : 특정 소켓 참조하지 않고 연결된 모든 소켓에 보낼 대신 다음을 사용한다 Socket.IO 0.7에서

var io = require('socket.io').listen(8080); 

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Message Broadcast\n'); 
    console.log("Message Sent"); 

    //DOES NOT SEEM TO WORK, error 
    io.broadcast("Messages"); 

    //No error but no messages 
    io.emit("Message"); 

}).listen(80, "0.0.0.0"); 


/** 
Other socket.io code which works well.. 
.... 

답변

2

모든 소켓에 ( 제외) 연결을 시작한 소켓 - 물론 현재 코드가 충분하지 않은 이유로 소켓 참조를 보내야합니다. 위키 페이지에서

인용구 : 당신은 모든 사람에게 메시지를 보내려면 Socket.IO/Wiki

당신이 io.sockets를 참조 할 수 있습니다 :

io.sockets.send('message');

io.sockets.emit('event');

+0

감사합니다! 관심있는 사람들에게도이 링크를 확인하십시오. http://stackoverflow.com/questions/6993725/socket-io-0-7-can-not-call-broadcast-send/7002545#7002545 – Pasta

+0

np! 위키 링크에서 다른 변경 사항을 확인하십시오. – f0x

관련 문제