首先,我想说,在我的公司,我们是Elixir生态系统的巨大粉丝,尤其是Phoenix框架。
经纪人应用: Elixir 1.5.1 凤凰v1.3 Freebsd jail v10.3 amd64
客户端应用: Elixir 1.5.1 凤凰v1.3 Mac os X
当通过通道发送多个消息时,例如使用循环或Enum.each,只有少数消息设法到达代理通道handle_in函数。 然后客户端崩溃,出现以下错误:
21:45:58.027 [错误] **状态机#PID< 0.471.0>终止** 最后一条消息是{:send_frame,{:binary, <<<< 31,139,8,0,0,0,0,0,3,188,187,231,206,235,74,146,45,248, 42,131,51,63,217,183,232,93,253,163,104,69,47,209,115,106, 80,160,247,222,179,113,223,125,184,247,62,231,84,...>>}} **当State ==:connected ** Data == {:背景下,
{:websocket_req,:wss,'broker.dexyde.com',443, '/socket/websocket?user_token=SFMyNTY.g3QAAAACZAAEZGF0YW4HAIClCS9hXAVkAAZzaWduZWRuBgC9YkVUXwE.ZRbhkBm4BxzGEXLynPpfXDuGTcuZQMdhgcJszmZd3zo', 30000,:undefined,1, {:sslsocket,{:gen_tcp,#Port< 0.20422>,:tls_connection,:undefined}, #PID< 0.476.0>}, {:transport,:ssl,:ssl,:ssl_closed,:ssl_error, [mode :: binary,active:true,verify :: verify_none,packet:0]}, “12krm8DaxFlr / ZuaS8p6Uw ==”,139669,1,2,:undefined,:undefined},{:transport,:ssl,:ssl,:ssl_closed,:ssl_error, [mode :: binary,active:true,verify :: verify_none,packet:0]},[],{:wss,'broker.dexyde.com',443, '/socket/websocket?user_token=SFMyNTY.g3QAAAACZAAEZGF0YW4HAIClCS9hXAVkAAZzaWduZWRuBgC9YkVUXwE.ZRbhkBm4BxzGEXLynPpfXDuGTcuZQMdhgcJszmZd3zo'}, {Phoenix.Channels.GenSocketClient.Transport.WebSocketClient, %{keepalive:30000,socket:#PID< 0.469.0>}},<<<<<<<<<<<  <<<<<<<<<     235,90,118,45,248, 42,141,211,63,105,155,57,213,63,138,81,204,18,51,187,26,5, 230,156,51,141,251,238,151,...>>,false,:undefined,0} **终止原因= ** {:错误,:已关闭}
我们在代理端使用带有自定义序列化程序的二进制消息。 在压缩之前,观察到的有效载荷大小在500K到1M之间。
当客户端应用程序在很短的时间内通过该通道发送多条大型消息时,它似乎与代理通道断开连接。
对此主题表示欢迎或评论。
非常感谢你的帮助。
此致
于连
答案 0 :(得分:0)