【问题标题】:Get a reference to Websocket connection in Cowboy在 Cowboy 中获取对 Websocket 连接的引用
【发布时间】:2018-03-11 19:25:44
【问题描述】:

我正在关注这个例子。我用 "websocket_handle({text, >}, State) -> 稍微修改了我的ws_handler {reply, {text, >}, 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 中的相同类型的引用。

【问题讨论】:

    标签: websocket erlang cowboy


    【解决方案1】:

    我正在考虑创建一个引用 websocket 状态的进程。等等

    websocket_init(State) ->

    将状态传递给进程,并将新进程 PID 添加到 websocket 的状态

    然后在

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

    可以通过从连接到自定义域逻辑的 PID 加载数据来发送自定义 {reply, Reply}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-24
      • 2013-04-25
      • 2021-06-15
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 2014-11-12
      相关资源
      最近更新 更多