在Cowboy中获取Websocket连接的引用

时间:2017-09-29 20:25:31

标签: websocket erlang cowboy

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

1 个答案:

答案 0 :(得分:0)

我正在考虑创建一个引用websocket State的进程。所以

websocket_init(State) ->

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

然后在

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

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