0

我正在开发一个同时使用牛仔和 sockjs 的 erlang 应用程序,我想知道是否可以与处理 websocket 连接的牛仔进程链接?

现在,带有 gen_server 行为的进程与每个 websocet 连接相关联。这样的进程将 Conn 实例存储在 init 中,当客户端关闭连接时,该进程将从 websocket 处理程序中终止,如果 gen_server 进程终止,则从 gen_server 的 terminate() 调用 Conn:close 来进行清理。它有效,但我不喜欢这个解决方案,因为在某些情况下,即使启用了 trap_exit,也不会调用终止函数,所以如果可以进行链接,它会是更好、更简单的解决方案。

4

1 回答 1

0

在什么情况下不会在 gen_server 上调用终止?

从理论上讲,您可以从 Conn 对象中提取 Pid,但这显然会破坏封装。

如果您可以提出一个理智的 API 来解决您的问题,请随时提交拉取请求(请在拉取请求中详细解释问题)。

于 2012-10-03T11:45:10.667 回答