【问题标题】:Erlang websocket client with cowboy server带有牛仔服务器的 Erlang websocket 客户端
【发布时间】:2017-11-28 04:03:35
【问题描述】:

我正在尝试使用这个 websocket 客户端库,但收效甚微。 Erlang websocket client

如果有人使用这个库来构建一个与远程服务器通信的客户端,你是如何发送消息的?

基本用法说明调用这个来发起连接,

websocket_client:start_link("wss://echo.websocket.org", ?MODULE, []).

并 cast/2 将消息发送到远程服务器。

websocket_client:cast(self(), {text, <<"message 1">>}).

但是,如果我尝试在代码中的其他位置使用相同的功能将文本/二进制帧发送到远程服务器,则无济于事。

有什么我想念的吗?

谢谢!

【问题讨论】:

    标签: websocket erlang


    【解决方案1】:

    请记住,websocket_client:cast/2 的第一个参数必须是 websocket_client 进程的 pid。您可以从start_link 调用中获取 pid,例如:

    {ok, Pid} = websocket_client:start_link("wss://echo.websocket.org", ?MODULE, []).
    

    并向远程服务器发送消息:

    websocket_client:cast(Pid, {text, <<"message 1">>}).
    

    websocket_client项目的示例代码中,cast是从init函数中调用的,在这种情况下他们可以使用self(),因为init函数实际上是由websocket客户端进程执行的。

    类似地,如果您从 websocket_handle/websocket_info 回调函数中调用 cast,您可以使用 self(),因为它们也被 websocket 客户端进程调用。

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 2021-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多