我正在开发一个我希望将音频流传输到网页的应用程序。当我打开连接并发送消息时,服务器和客户端会收到消息(s.send('Hi'))
。但是当我开始循环时,我的脚本在完成3次迭代后停止然后退出。
我注意到服务器在第一次迭代后抛出creating default object from empty value
错误
import websocket
# https://github.com/liris/websocket-client
HOST = 'ws://127.0.0.1:8080'
s = websocket.create_connection(HOST)
s.send('Hii')
i = 0
while 1:
i += 1
print(i)
s.send(str(i))
time.sleep(0.5)
这是完整的错误追溯
1
2
3
Traceback (most recent call last):
File "E:\Redux\Win32\streamingdata.py", line 20, in <module>
s.send(str(i))
File "C:\Python33\lib\site-packages\websocket\__init__.py", line 656, in send
return self.send_frame(frame)
File "C:\Python33\lib\site-packages\websocket\__init__.py", line 680, in send_frame
l = self._send(data)
File "C:\Python33\lib\site-packages\websocket\__init__.py", line 900, in _send
return self.sock.send(data)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
哪里出错了?使用纯套接字到远程侦听器,脚本执行,服务器接收消息。使用websocket失败了。谁可以帮助我?
答案 0 :(得分:1)
尝试将time.sleep(0.5)
替换为gevent.sleep(0.5)
由于websocket
基于gevent
,您应该阻止使用阻止操作。
由于time.sleep
阻止了一个,您可能会阻止通过webscocket
发送数据,gevent.sleep
在睡眠期间没有机会进行通信。
gevent
会给{{1}} greenlet一个生存的机会。