我在使用websockets和MQTT的项目中工作。 Websocket服务器从mqtt收到4条消息,我循环接收任何其他消息。但是,如果没有消息,Encoded_fixed_header = gen_tcp:recv(Socket, 0)
会出错,因为没有消息要接收。我做了一些关于gen_tcp的研究:recv,它说它等待无限的消息,但它似乎没有,它关闭了套接字。
recieve(Socket,WsPID) ->
Encoded_fixed_header = gen_tcp:recv(Socket, 0),
Length = gen_tcp:recv(Socket, 0)
Variable_Header = gen_tcp:recv(Socket, 0),
Playload=gen_tcp:recv(Socket, 0),
recieve(Socket,WsPID).
可能是什么问题?
答案 0 :(得分:0)
在gen-tcp:listen / 2,启动服务器时,或在inet_default_connect_options中检查active参数的值,如果使用默认值。