2014-11-24 4 views
0

래칫을 사용하여 이미 푸셔를 통합했습니다. 모든 사용자에게 방송이 정상적으로 작동합니다.래칫 클라이언트 메시지

이제 연결이되면 특정 사용자에게 메시지를 보내는 방법을 찾으려고합니다. 클라이언트 측에서

public function onSubscribe(ConnectionInterface $conn, $topic) { 
    $conn->send(json_encode("Hello")); 
} 

JS : 가입에서 실행되는

방법

var conn = new ab.Session('ws://127.0.0.1:8080', 
       function() { 
        conn.subscribe('chat', function(topic, data) { 
         console.log(data); // here I'd like to get that "Hello" message 
        }); 
       }, 
       function() { 
        console.warn('WebSocket connection closed'); 
       }, 
       {'skipSubprotocolCheck': true} 
     ); 

내가 어떤 메시지를받지 못했습니다, 나는 ((내가 제대로 포맷하지 않은로 json_encode를 추측 "여보세요")). 어떤 도움이 필요합니까?

답변

0

어떻게 든 연결을 저장 한 다음 직접 호출해야합니다.

$conns[$conn->resourceId] = $conn; 

그리고 나중에 : 예를 들어

왜 대신 송신의) (쓰기를 시도 방법을 구독의 메시지를받을 수없는 대해서는
$conns[$resourceId]->write("new data"); 

() 방법.

또한 콘솔을 검사하여 데이터를 받고 있지만 제대로 압축을 풀지 못했는지 확인하십시오.

+0

정의되지 않은 메소드 호출 Ratchet \ Wamp \ WampConnection :: write() json_encode없이 보낼 때 JSON.parse 오류가 발생하므로 메시지가 나타납니다. 하지만 json_encode로 보내면 아무 것도 얻지 못합니다. – LTRocky

+0

아, 래칫이 반응 연결을 확장한다는 것을 잊어 버렸습니다. 흠, 조금만 주면 내가 이것을 들여다 볼게. 나는 React에 대해 꽤 잘 알고 있지만 Ratchet에 대해서는 잘 알고 있지 않습니다. (FYI : Ratchet는 React를 기반으로합니다.) – JRL

관련 문제