我试图使用这个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
项目的示例代码中,cast
从init
函数中调用,在这种情况下,它们可以使用self()
,因为init
函数实际上是由 websocket 客户端进程执行的。
同样,如果您从websocket_handle
/websocket_info
回调函数中调用cast
,则可以使用self()
,因为这些函数也由 websocket 客户端进程调用。