2012-10-03 5 views
0

나는 카우보이와 sockjs를 모두 사용하는 erlang 앱을 개발 중이며 websocket 연결을 처리하는 카우보이 프로세스와 연결할 수 있는지 궁금합니다.websocket 연결 (카우보이, 얼랭)을 처리하는 카우보이 프로세스와 연결

지금 gen_server 동작의 프로세스는 각 웹 세트 회의와 관련됩니다. 이러한 프로세스는 init에 Conn 인스턴스를 저장하고 클라이언트가 연결을 닫으면이 프로세스는 websocket 처리기에서 종료되고 gen_server 프로세스가 종료되면 정리를 수행하는 gen_server의 terminate()에서 Conn : close가 호출됩니다. 그것은 작동하지만 trap_exit enabled terminate 함수를 호출하더라도 호출되지 않는 몇 가지 경우가 있기 때문에이 솔루션이 마음에 들지 않습니다. 따라서 연결이 가능하면 더 간단하고 간단한 솔루션 일 것입니다.

답변

0

어떤 경우 종료는 gen_server에서 호출되지 않습니까?

이론적으로 Conn 개체에서 Pid를 추출 할 수는 있지만 캡슐화가 중단됩니다.

문제점을 해결하는 정상적인 API를 제안 할 수 있다면 언제든지 당겨 요청을 제출할 수 있습니다. 문제를 자세히 설명해주십시오.

+0

erlang : exit (GenServerPid, kill)을 사용하여 gen_server를 종료하거나 감독자의 brutal_kill 전략을 사용하는 경우 terminated()가 호출되지 않습니다. 캡슐화를 위반하지 않고 해결책이 없다면 나는 위에서 언급 한 것을 사용할 것입니다. –

관련 문제