2011-08-03 5 views
4

웹 클라이언트에 데이터를 보내기 위해 nodejs/socket.io (v 0.7) 서버를 실행하고 있습니다. 그것은 크게 작용합니다.PHP 및 cURL을 통해 NodeJS/Socket.io에 액세스하십시오.

응용 프로그램을 확장하려면 PHP보다 socket.io를 트리거하거나 영향을 주어야합니다. 나는 nodejs http 서버와 http를 통해 cURL 함께 작동하는 솔루션을 알아.

한 가지 가능한 솔루션은 동일한 app.js에서 socket.io 서버와 nodejs http 서버를 실행하는 것입니다. 클라이언트는 socket.io에 연결하고 통신하며 "별도의"http 서버 (socket.io 이외의 다른 포트에서 수신 대기)에 대한 유일한 연결은 PHP 서버에서 각각 cURL을 통해 127.0.0.1입니다.

두 서버가 동일한 범위에 있으므로 http 서버가 socket.io 서버에서 이벤트를 트리거 할 수 있습니다.

내 질문 : 이해가 되니? PHP의 socket.io에서 이벤트를 트리거하는 더 깨끗한 솔루션이 있습니까?

답변

1

저는 이것이 합리적이고 직접적인 방법이라고 생각합니다. 실행의 순서를 다루는 것에 대해주의를 기울이는 것이 좋겠지 만 노드가 보여주는 것은 아마도 내 불확실성입니다.

+0

아래로 발광 이벤트를 트리거 할 수 있습니다, 감사합니다. 나는 그렇게 할거야. – helix

1

저는 pusher API와 비슷한 솔루션을 작성했습니다. 그것은 방 (채널) 개념을 활용합니다. express 경로를 통해 (PHP를 통해) 컬하여 객실 (채널)에 메시지를 보낼 수 있습니다.

io.sockets.in('your room').json.send('your json'); 

나는 (희망 주일 이내) 미래의 프로젝트 소스를 열고 싶은, 그러나 희망 당신은 그림을 얻는다.

+0

안녕하세요 알프레드, 그게 내가 찾는 사람인지 모르겠다. 어쨌든 위대한 오픈 소스가 있다면, 끝나면 여기에 링크를 게시하는 것을 잊지 마십시오! – helix

+1

솔루션을 게시 한 적이 있습니까? 나는 이것에 매우 흥미가있다. – EsTeGe

+0

@EsTeGe 퇴조 : $,하지만 계속 작업하고 싶습니다. – Alfred

0

1.3.3 이상 버전 (이전 될 수있다)와 socket.io, 당신이 좋아

//send broadcast message to all connecting clients 
io.emit([message event],[your message body obj or str]); 

// send to specific user 
io.to([your room]).emit([message event], [your message body obj or str]); 
관련 문제