我用过Python外包,websocket-client
连接到发送事件的 RESTful 服务。
from websocket import create_connection
ws = create_connection("wss://machine:port/servicename/subscribe")
for event in ws:
print event
...getting events printed
我想知道是否可以使用核心 Python 2.7 或 Python 3.5 实现相同的功能,而无需安装外部 websocket-client
包或任何其他第三方 Python 包。
我已经在互联网上搜索了我所看到的使用 Python socket
模块的代码示例,请引用通过 http
或 tcp
连接而我需要通过 wss
建立连接。
最佳答案
很晚了,但对于可能在这里绊倒的任何人...Web Sockets 协议(protocol)是建立在 TCP 之上的,因此预计该协议(protocol)的实现会通过 TCP 建立连接。此外,Web Socket 的打开握手是在 HTTP 之后完成的。这也可以解释为什么亚历克斯看到了 HTTP 连接。如果您想了解如何从头开始实现一个,请安装网络套接字模块(高速公路,这反过来会导致安装和读取 Twisted 和异步模块,或 wampy)并深入研究代码。建议在 https://www.rfc-editor.org/rfc/rfc6455 阅读 Web Sockets 协议(protocol)规范。在处理模块之前。
关于python - 使用 Python 中的标准模块连接到网络套接字(wss)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40680790/