使用Python中的标准模块连接到Web套接字(wss)?

时间:2016-11-18 15:31:46

标签: python sockets websocket

我使用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模块的代码示例,通过httptcp引用连接,而我需要通过wss

1 个答案:

答案 0 :(得分:2)

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