Я использую приложение websocket_client python и следующий код -
ws = websocket.WebSocket(sslopt={"cert_reqs": ssl.CERT_NONE})
ws.connect("wss://something.synology.me:1111")
ws.send(json.dumps({
'token': device_token,
'payload': {'volume': 0.5}
}))
ws.close()
Иногда это работает хорошо, иногда я получаю следующую ошибку -
WebSocketAddressException: [Errno -2] Name or service not known
Это работает более или менее Хорошо вчера (скажем, сработало один раз в две попытки), но сегодня не работает вообще. Я пытался запустить тот же код с локальным Google App Engine - он работает хорошо.
Возможно ли, что сервер GAE каким-то образом ограничивает мои соединения? Что я должен проверить?
Upd. дальнейший анализ показывает, что эта проблема может быть вызвана этой частью кода :
def _get_addrinfo_list(hostname, port, is_secure, proxy):
phost, pport, pauth = get_proxy_info(
hostname, is_secure, proxy.host, proxy.port, proxy.auth, proxy.no_proxy)
try:
if not phost:
addrinfo_list = socket.getaddrinfo(
hostname, port, 0, socket.SOCK_STREAM, socket.SOL_TCP)
return addrinfo_list, False, None
else:
pport = pport and pport or 80
addrinfo_list = socket.getaddrinfo(phost, pport, 0, socket.SOCK_STREAM, socket.SOL_TCP)
return addrinfo_list, True, pauth
except socket.gaierror as e:
raise WebSocketAddressException(e)
, т. е. при запуске socket.getaddrinfo в GAE может быть проблема.