【发布时间】:2017-11-24 20:29:41
【问题描述】:
我在 erlang 中使用 Chumak,打开一个 ROUTER 套接字。
我有少数(4 个左右)客户端使用 Python zmq 库向此服务器发送 REQ 请求。
大多数情况下一切正常,但有时客户端会出现断开连接问题(自动重新连接在客户端代码中,并且可以正常工作)。我发现当一个客户端连接发生错误时,它似乎也会转移到其他客户端,并且我得到了很多** {{noproc,{gen_server,call,[<0.31596.16>,incomming_queue_out]}},
在服务器上。
在服务器端,我只是打开一个 chumak 套接字并循环:
{ok, Sock} = chumak:socket( router ),
{ok, _} = chumak:bind( Sock, tcp, "0.0.0.0", ?PORT ),
spawn_link( fun() -> loop( Sock ) end ),
...
loop( CmdSock ) ->
{ok, [Identity, <<>>, Data]} = chumak:recv_multipart( Sock ),
...
ZeroMQ 文档似乎暗示一个监听套接字就足够了,除非我有很多客户端。
我误解他们了吗?
【问题讨论】: