Erlang 牛仔:牛仔处理者如何在没有请求的情况下回复客户
现在我使用cowboy作为websocket服务器,我了解到处理程序实现了一个名为Erlang 牛仔:牛仔处理者如何在没有请求的情况下回复客户,erlang,cowboy,Erlang,Cowboy,现在我使用cowboy作为websocket服务器,我了解到处理程序实现了一个名为cowboy\u websocket\u处理程序的行为,每次我们收到请求时都会调用websocket\u handle/3函数,为了回复请求,我们使用{reply,X,}进行回复。但是,由于WebSocket是一种双向协议,并且服务器无需请求即可访问客户端,因此如何向客户端发送一些数据,而不是在web\u socket\u handle中 我期待着处理程序中的一些东西 发送(客户端、数据)。我想的方向对吗?谢谢 如
cowboy\u websocket\u处理程序
的行为,每次我们收到请求时都会调用websocket\u handle/3
函数,为了回复请求,我们使用{reply,X,}
进行回复。但是,由于WebSocket是一种双向协议,并且服务器无需请求即可访问客户端,因此如何向客户端发送一些数据,而不是在web\u socket\u handle
中
我期待着处理程序中的一些东西
发送(客户端、数据)
。我想的方向对吗?谢谢
如果是,牛仔是否提供了一些API来实现这一点 引用文档:
每当Erlang消息到达时,Cowboy将调用websocket_info/2
处理程序可以处理或忽略消息。它还可以发送帧
连接到客户端或停止连接
以下代码段将日志消息转发给客户端并忽略
所有其他:
因此,您所要做的就是从另一个进程(如果愿意,也可以从它自己)向处理程序发送消息,并实现上述websocket_信息以向客户端发送帧
websocket_info({log, Text}, State) ->
{reply, {text, Text}, State};
websocket_info(_Info, State) ->
{ok, State}.