带有牛仔服务器的 Erlang websocket 客户端



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

如果有人使用此库构建与远程服务器通信的客户端,您如何能够发送消息?

基本用法显示调用它以启动连接,

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

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

websocket_client:cast(self(), {text, <<"message 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项目的示例代码中,castinit函数中调用,在这种情况下,它们可以使用self(),因为init函数实际上是由 websocket 客户端进程执行的。

同样,如果您从websocket_handle/websocket_info回调函数中调用cast,则可以使用self(),因为这些函数也由 websocket 客户端进程调用。

最新更新