Ошибка, о которой идет речь, здесь , что означает, что Socket.Stream.recv!/2
вернулось несколько неожиданно.
Это делегировано Socket.Stream.Protocol
.
В зависимости от того, используете ли вы ssl
или нет, оно происходит от здесь или от здесь .
Эта библиотека древняя и AFAICT очень строгая. Единственный способ продвинуться на go, который я могу придумать, - это раскошелиться, изучить ответы, которые, как вы ожидаете, будут правильными, изменить обработку Socket.Stream.recv!/2
на что-то, отвечающее вашим требованиям:
response =
case Socket.Stream.recv!(client, global) do
{:http_response, _, 101, _} -> :ok
{:http_error, _json} -> :ok
_ -> :error
end
И с этим обращаться соответственно. Почему ваш сервер отвечает таким странным образом, здесь выходит за рамки.