Using Flask-socketio and the socketIO client

匿名 (未验证) 提交于 2019-12-03 01:06:02

问题:

I'm currently trying to understand how sockets work. I'm using Flask-socketio and a python socketio client and running through a basic example. Here is what I have done so far

app.py

from flask import Flask, render_template from flask_socketio import SocketIO, emit  app = Flask(__name__) app.config['SECRET_KEY'] = 'secret!' socketio = SocketIO(app)  @socketio.on('aaa') def test_connect():     print("Welcome, aaa received")     emit('aaa_response', {'data': 'Server'})  if __name__ == '__main__':     socketio.run(app, port=8000) 

client.py

from socketIO_client import SocketIO, LoggingNamespace  def on_aaa_response(args):     print('on_aaa_response', args['data'])  socketIO = SocketIO('localhost', 8000, LoggingNamespace) socketIO.on('aaa_response', on_aaa_response) socketIO.emit('aaa') socketIO.wait(seconds=1) 

I get an assertion error when I run the client.py. I do see the server printing "Welcome, aaa recived" though. I don't know what am I doing wrong here, If thats required here is my log

Error log

Exception in thread Thread-1: Traceback (most recent call last):   File "c:\users\dj\appdata\local\programs\python\python36\Lib\threading.py", li ne 916, in _bootstrap_inner     self.run()   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\heartbeats.py", line 27, in run     self._send_heartbeat()   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\__init__.py", line 203, in _ping     engineIO_packet_type, engineIO_packet_data)   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\transports.py", line 109, in send_packet     assert response.content == b'ok' AssertionError  Traceback (most recent call last):   File "demo.py", line 8, in <module>     socketIO.emit('aaa')   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\__init__.py", line 424, in emit     self._message(str(socketIO_packet_type) + socketIO_packet_data)   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\__init__.py", line 33, in wrap     return f(*args, **kw)   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\__init__.py", line 219, in _message     transport.send_packet(engineIO_packet_type, engineIO_packet_data)   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\transports.py", line 109, in send_packet     assert response.content == b'ok' AssertionError Exception ignored in: <bound method SocketIO.__del__ of <socketIO_client.SocketI O object at 0x00000028079DC320>> Traceback (most recent call last):   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\__init__.py", line 364, in __del__   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\__init__.py", line 400, in disconnect   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\__init__.py", line 193, in _close   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\transports.py", line 108, in send_packet   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\socketIO_c lient\transports.py", line 191, in get_response   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\requests\s essions.py", line 555, in post   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\requests\s essions.py", line 494, in request   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\requests\s essions.py", line 419, in prepare_request   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\requests\c ookies.py", line 537, in merge_cookies   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\site-packages\requests\c ookies.py", line 353, in update   File "C:\Users\Dj\Desktop\Flask\FLASK-SOCKET\venv\lib\copy.py", line 96, in co py ImportError: sys.meta_path is None, Python is likely shutting down 

回答1:

Based on the stack trace, I could not identify the version of the socketIO-client package that you are using. It does not appear to be a current one.

I have tested your two applications here and they seem to work perfectly fine with version 0.7.2 of the client. I suggest you run pip install --upgrade socketIO-client==0.7.2 and then try again.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!