Erlang gen_tcp:recv socket关闭

时间:2014-07-02 01:57:16

标签: sockets websocket erlang mqtt gen-tcp

我在使用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).

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

在gen-tcp:listen / 2,启动服务器时,或在inet_default_connect_options中检查active参数的值,如果使用默认值。