我使用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
。
答案 0 :(得分:2)
很晚,但对于那些可能在这里偶然发现的人来说...... Web套接字协议是建立在TCP上的,所以预计协议的实现会通过TCP建立连接。此外,Web Socket的打开握手是在HTTP之后完成的。这也可以解释为什么Alex看到了HTTP连接。如果你想看看如何从头开始实现一个,安装web套接字模块(高速公路,这反过来会导致安装和读取Twisted和asyncio模块,或wampy)并深入研究代码。建议在处理模块之前阅读https://tools.ietf.org/html/rfc6455处的Web套接字协议规范。