问题标签 [python-socketio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
878 浏览

python-socketio - 无法在 python-socketio 中使用 self

我不能在一个类中使用self。看起来装饰器后的函数的数据是第一个参数。

例子:

错误:</p>

0 投票
1 回答
1084 浏览

python - 在 python socketio RuntimeWarning 中:尽管编写了等待语句,但从未等待协程'initial'

python3 client.py /home/aijax/.local/lib/python3.6/site-packages/socketio/client.py:592: RuntimeWarning: coroutine 'initial' 从未等待 self._handle_event(pkt.namespace, pkt.id , pkt.data) 连接建立尽管有等待我收到错误 PS:我对 python 的 Async-io 几乎一无所知 我有点为我的 client.py 的学校项目一夜之间完成了这项任务

我的任务是创建一个服务器和许多客户端,它们将一个数字发送到服务器,服务器将其聚合并将其发送回客户端并执行本地更新并将数字发回 my server.py

0 投票
0 回答
1653 浏览

python - 套接字IO。在命名空间上不起作用

我有以下系统:[Clietn] --- [Web Server (Flask)] --- [Data source]。

数据源连接到服务器并无休止地发送新数据。服务器收到新数据后,将其发送给客户端。交换是使用 Socket.IO 库组织的。

[ Clietn (JS) socket.io)] --- [python-flask-socketio服务器python-flask-socketio] --- [python-socketio数据源]

编码

客户

服务器(烧瓶)

达拉源

为什么在将连接器连接到服务器时,会触发“@sio.on ('connect', namespace = '/')”处理程序?它还激活处理程序“@sio.on ('tag_changed', namespace = '/connector')”。

sio.connect ('http://192.168.3.58:5000/connector', namespaces = ['/ connector'])也没有帮助。

0 投票
1 回答
660 浏览

react-native - 聊天应用、React Native 和 FlaskBackend 以及 flask_socketio 的问题

我正在尝试创建一个项目,其功能之一是聊天。聊天的结构是:用 React Native 制作的应用程序和我使用 Flask 的后端。对于后端,我有许多不同的路由,我的目的是创建另一个路由来使用 WebSocket 处理用户消息。我对 flask_socketio 有很多问题。我使用 NodeJs 尝试了一个小版本的 websocket,它运行得完美无缺。这就是我到目前为止所做的:

我尝试测试的节点后端...

烧瓶后端:

配置 websocket 功能:

用于处理 websocket 的命名空间:

也许值得一提的是,我正在使用 ngrok 在前端(移动应用程序)和后端之间建立隧道。PyCharm 上的错误消息(用于烧瓶后端):

Android Studio 上 React Native 应用程序的错误消息:

0 投票
1 回答
883 浏览

python - 为什么 flask_socketio.disconnect 会阻止线程完成?

我有以下系统:[Client] - [Web Server] - [Connecotr]

连接器是 Web 服务器和数据源之间的一种中间代码。

我需要监视与连接器的服务器连接。如果连接丢失,那么我必须通知客户端。

Web 服务器和连接器之间的通信是使用 socketio 组织的。

问题是如果连接器停止工作,那么 Web 服务器将在一分钟后知道它(这是最好的情况)。

我决定服务器应该每秒检查一次连接器的状态。

当连接器连接到服务器时,后台任务将启动。任务的本质:每一秒:1)固定时间;2)将固定时间保存到堆栈中;3) 将回显消息发送到连接器。(见 server.background_thread)

连接器接受回显消息和时间戳作为参数,并将回显消息发送到 Web 服务器,作为它传递接收到的时间戳的参数。(见client.echo)

Web 服务器收到回显消息,如果时间戳等于堆栈中的最后一个值,则从堆栈中删除该值。(见 server.on_echo_connector)

在 Web 服务器上,每次迭代都会检查堆栈大小(请参阅 server.background_thread)。如果大于5,则表示连接器5次没有响应回显消息,我们认为连接器不可用,断开连接。

当服务器意识到连接器不可用时,需要终止向连接器发送回显消息的线程。

一旦堆栈大小大于 5,我退出无限循环并调用flask_socketio.disconnect (connector_sid, '/ connector'). 在这个电话之后没有任何效果(例如print

on_disconnect_connector(server) 方法中,thread.join()被调用并且永远不会终止。

而且我需要完成线程,这样当连接器再次启动时,它会连接成功,一切重新开始。

如何解决这个问题呢?

服务器

客户

蟒蛇 2.7

0 投票
0 回答
163 浏览

python - 如何在事件处理程序(python-socket,sphinx)中保留文档字符串

我正在尝试使用 sphinx autodoc 为我的 python 项目生成文档。我似乎无法在此代码中保留文档字符串:

我不知道如何使用类似functool.wraps这个问题中接受的答案之类的东西: Python decorator handling docstrings

我将如何保存函数文档字符串?

谢谢

0 投票
3 回答
1969 浏览

python - fxcmpy REST api 的连接问题

我正在使用 fxcmpy 的 REST api 连接到我的 fxcmpy 帐户。自从升级到 1.2.6 版后,当我意外从服务器断开连接时,我遇到了重新连接问题。

我通过命令检测到断开连接

其中 disconnect 是我重新连接的回调函数:

由于新版本我得到一个“服务器错误:无法连接到 FXCM 服务器”。或“数据包队列为空,正在中止”消息。

如果我重新启动我的 python 控制台,我可以重新启动我的脚本,直到下一次断开连接。我在 Windows 10、Raspbian 和 android 上试过这个:在所有情况下都是同样的问题。

我已经将 python-socketio 和 python-engineio 都更新到了它们的最新版本:没有变化。

当我遇到断开连接问题时,我正在寻找一种重新启动客户端的方法。有人有同样的问题/解决它的线索吗?

谢谢

0 投票
2 回答
2522 浏览

python - 无法使用 Flask-SocketIO 向房间发送消息

我正在构建一个简单的聊天应用程序,我一直在尝试使用 Flask-SocketIO 向房间发送消息。

来自客户端的“mesage_event”事件很好地到达了服务器,但是,我在客户端看不到任何东西。我不知道服务器是否向房间发出了一些东西,但在客户端,我在控制台中看不到任何东西。我只能通过广播成功发送给所有客户端。

这是我在服务器端的代码:

和客户端:

1-用于发送消息:

2-用于触发事件处理程序:

0 投票
0 回答
207 浏览

python - 请求的地址在其上下文错误中无效(Socketio Python Aiohttp)

我在为我的 aiohttpTCPSite连接实现 SSL 时遇到问题。我有一个用 Ubuntu 和 Apache 设置的 VPS。我的配置文件设置为启用 CORS,并且 SSL 在服务器上处于活动状态。当我转到实际资源时,即https://irisslivedev.com:448没有问题,进一步让我相信这是一个 python 异步服务器问题。

在前端我收到资源的 404 错误,这只能意味着TCPSite服务器没有在端口上侦听......对吗?这是服务器的代码:

当我运行堆栈跟踪时,这是输出:

我真的不知道从哪里开始,我已经搜索了所有我能找到的资源和类似的答案。据我了解,当您尝试绑定到不在本地机器上的套接字时,或者当一个套接字已经在使用时,就会出现错误。

这是我的配置:

``

``如果有什么办法可以让这个问题更清楚,请告诉我。

0 投票
2 回答
322 浏览

python - 使用 uvicorn 连续运行 gpiozero 监听器

我正在尝试编写一个将在树莓派上运行的 python 应用程序,它将同时具有套接字连接(带有 uvicorn 的 socketio)和物理输入侦听器。我打算同时监听套接字连接和 gpio 事件,而不会相互阻塞。这是我到目前为止所拥有的:

api.py

volume_control.py

api_socket.py

我尝试过使用 asyncio,但我对 python 的异步功能有点陌生。问题是,我无法连续运行按钮侦听器,因此当套接字功能正在进行时,我将能够同时侦听按钮交互,而不会相互阻塞。按钮监听器根本不起作用。相反,只要 uvicorn 应用程序启动,我就需要按钮侦听器运行。

任何帮助将不胜感激。谢谢。