python - 使用 Python 中的标准模块连接到网络套接字(wss)?

标签 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 建立连接。

最佳答案

很晚了,但对于可能在这里绊倒的任何人...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/

相关文章:

websocket - 如何从服务器重新连接到客户端

python - 从图像创建弦乐艺术

python - 漂亮的汤检查标签中的标签

java - CTRL-C 在 Python 中的行为不同

multithreading - Perl 线程之间共享套接字对象

javascript - 可观察的订阅无法以非常短的间隔处理连续传入的数据

Python如何在两个列表之间找到一个不完全相同的单词?

python - Django、apache 和 mod_wsgi

c# - 当套接字/流关闭时,Tcpclient stream.ReadAsync 不返回 0?

JAVAX JSR 356 Websocket 与 Spring Boot