我有很多到WebSocket服务器的异步连接。过了一段时间,服务器停止响应,脚本只是等待响应。我必须dockerize和部署脚本,所以重置连接的唯一方法是再次运行docker映像。
理想的解决方案是类似于WebSockets.open
的关键字参数。
map(container) do item
@async begin
WebSockets.open(url) do ws
payload = generatepayload(item)
if writeguarded(ws, JSON3.write(payload))
while isopen(ws)
data, success = readguarded(ws)
### process data
end
end
end
end
end
但任何我只需要编写julia代码的解决方案都可以工作。
1条答案
按热度按时间ddrv8njm1#
jl的
readguarded()
允许超时读取错误异常被忽略。只要你的套接字read
有一个合理的超时(它应该),自己处理读取失败可能会有所帮助,因为这可以给予你一个新的与服务器的websocket连接。例如: