我正在开发一个使用牛仔和sockjs的erlang应用程序,我想知道是否可以链接处理websocket连接的牛仔进程?
现在具有gen_server行为的进程与每个websocet连接相关联。这样的进程在init中存储Conn实例,当客户端关闭连接时,此进程从websocket处理程序终止,如果gen_server进程终止,则从gen_server的terminate()调用Conn:close进行清理。它有效,但我不喜欢这个解决方案,因为有几种情况,即使启用了trap_exit,也不会调用terminate函数,所以如果可以进行链接,那将是更好更简单的解决方案。
答案 0 :(得分:0)
在什么情况下不会在gen_server上调用terminate?
理论上你可以从Conn对象中提取Pid,但这显然会破坏封装。
如果您可以提出一个解决问题的合理API,请随意提交拉取请求(请在拉取请求中详细解释问题)。