Sockets 使用CRLF json协议连接ssl套接字时出错
我正在尝试使用连接到套接字(ssl) 但我面临着这个错误:Sockets 使用CRLF json协议连接ssl套接字时出错,sockets,erlang,elixir,Sockets,Erlang,Elixir,我正在尝试使用连接到套接字(ssl) 但我面临着这个错误: ** (MatchError) no match of right hand side value: {:http_error, "{\"op\":\"connection\",\"connectionId\":\"203-270420013200-944388\"}\r\n"} (socket 0.3.13) lib/socket/web.ex:251: Socket.Web.connect!/3 但这不是一个错误。服务器接
** (MatchError) no match of right hand side value: {:http_error, "{\"op\":\"connection\",\"connectionId\":\"203-270420013200-944388\"}\r\n"}
(socket 0.3.13) lib/socket/web.ex:251: Socket.Web.connect!/3
但这不是一个错误。服务器接受我的连接,但elixir套接字返回错误。有什么问题吗?发生了问题中的错误,意思是
Socket.Stream.recv/2
返回了一些出乎意料的结果
它是连接到Socket.Stream.Protocol的
根据您是否使用ssl
,它来自或来自
这座图书馆既古老又严格。我所能想到的唯一进一步的方法是分叉,检查您希望正确的响应,修改Socket.Stream.recv/2
以满足您的要求:
响应=
case Socket.Stream.recv!(客户,全球)做什么
{:http\u响应,{,101,}->:好的
{:http\u错误,\u json}->:确定
_->:错误
终止
并据此处理。为什么您的服务器以如此奇怪的方式响应超出了本文的范围。我不知道在这种情况下“对我有效”应该是什么意思。我只想连接,但我测试的所有LIB连接都不是问题。:ssl.recv
返回{ok,{http\u error,{\'op\\:“connection\”,“connectionId\:“204-280420165409-1131618\}\r\n}
我在上面的回答中指出了问题所在。您正在查看非碰撞版本,碰撞版本将返回{:ok,}
元组中的值。服务器的响应类似于{:ok,{:http\u error,json}}
,但是是什么导致了http\u error
?里面有一个“成功”的消息。
** (MatchError) no match of right hand side value: {:http_error, "{\"op\":\"connection\",\"connectionId\":\"203-270420013200-944388\"}\r\n"}
(socket 0.3.13) lib/socket/web.ex:251: Socket.Web.connect!/3