2017-09-29 7 views
1

이 예제를 따르고 있습니다. ws_handler을 "websocket_handle (text, < <"h ">>}, 주)에서 약간 수정했습니다. -> {답장, {text, < <"You h-in! ">>}, State}; "카우보이에서 Websocket 연결에 대한 참조를 얻으십시오.

확인하려면 특정 메시지를 감지 할 수 있습니다.

웹 소켓 연결을 추적하고 싶습니다. https://ninenines.eu/docs/en/cowboy/1.0/guide/ws_handlers/에는 Req 객체가 있지만 그 객체가 무엇을 포함하는지 알아보기 위해 무엇을 검색해야할지 모르겠습니다.

발견 된 내용 communicating between http handler and websocket handler in Cowboy; 나는 예제 답변의 의미를 이해하지 못합니다.

https://github.com/ninenines/cowboy/tree/master/examples/websocketerlang.mk에서 pkg_cowboy_commit = 1.0.4를 사용하고 있습니다. 최신 2.0 카우보이를 사용한 예를 찾지 못했습니다.

목록의 ID 또는 PID를 통해 websocket 연결을 추적하고 연결을 끊을 때 참조를 제거하고 싶습니다. ID가되는 각 메시지에 텍스트의 첫 번째 바이트를 보내는 것 외에이 작업을 수행 할 방법이 없습니다. 이것은 틀린 것처럼 보인다.

socket.io와 대조적으로, 예를 들어 socket.id이 있습니다. Erlang에서 같은 종류의 참조를 원합니다.

답변

0

나는 websocket 상태를 참조하는 프로세스를 만드는 것과 같은 것을 생각하고 있습니다. 그래서

websocket_init(State) ->

에 프로세스에 주를 통과하고,

websocket_handle({text, Msg}, State) ->

사용자 정의에

다음 웹 소켓의 상태에 그 새로운 프로세스의 PID를 추가 {reply, Reply} 될 수 있습니다 커스텀 도메인 로직에 연결된 PID로부터 데이터를로드함으로써 보내집니다.