API文档(https://python-socketio.readthedocs.io/en/latest/intro.html)提供了服务器和客户端的示例。但是如果您运行它们,您将不会开始消息传递。我不知道该怎么安排。
如何设置消息传递,以便通过print函数输出它们的身体?
client.py
import socketio
sio = socketio.Client()
@sio.event
def connect():
print('connection established')
@sio.event
def my_message(data):
print('message received with ', data)
sio.emit('my response', {'response': 'my response'})
@sio.event
def disconnect():
print('disconnected from server')
sio.connect('http://localhost:5000')
sio.wait()server.py
import eventlet
import socketio
sio = socketio.Server()
app = socketio.WSGIApp(sio, static_files={
'/': {'content_type': 'text/html', 'filename': 'index.html'}
})
@sio.event
def connect(sid, environ):
print('connect ', sid)
my_message(sid, {'Test': 'Message'})
@sio.event
def my_message(sid, data):
sio.send(data)
print('Send message ', data)
@sio.event
def disconnect(sid):
print('disconnect ', sid)
if __name__ == '__main__':
eventlet.wsgi.server(eventlet.listen(('', 5000)), app)微量client.py
venv) user@debian:~/work/self_prj/socket_io$ python3 client.py
connection established微量server.py
(13043) wsgi starting up on http://0.0.0.0:5000
(13043) accepted ('127.0.0.1', 50352)
127.0.0.1 - - [11/Sep/2019 15:24:08] "GET /socket.io/?transport=polling&EIO=3&t=1568204648.5529237 HTTP/1.1" 200 385 0.000619
connect cff05ec678794128a6541f33bf3ef6dd
Send message {'Test': 'Message'}
(13043) accepted ('127.0.0.1', 50356)
127.0.0.1 - - [11/Sep/2019 15:24:08] "POST /socket.io/?transport=polling&EIO=3&sid=cff05ec678794128a6541f33bf3ef6dd HTTP/1.1" 200 167 0.000148
127.0.0.1 - - [11/Sep/2019 15:24:08] "GET /socket.io/?transport=polling&EIO=3&sid=cff05ec678794128a6541f33bf3ef6dd&t=1568204648.5590577 HTTP/1.1" 200 183 0.002194
127.0.0.1 - - [11/Sep/2019 15:24:33] "POST /socket.io/?transport=polling&EIO=3&sid=cff05ec678794128a6541f33bf3ef6dd HTTP/1.1" 200 167 0.000372
127.0.0.1 - - [11/Sep/2019 15:24:33] "GET /socket.io/?transport=polling&EIO=3&sid=cff05ec678794128a6541f33bf3ef6dd&t=1568204648.5659044 HTTP/1.1" 200 183 24.994966
127.0.0.1 - - [11/Sep/2019 15:24:58] "POST /socket.io/?transport=polling&EIO=3&sid=cff05ec678794128a6541f33bf3ef6dd HTTP/1.1" 200 167 0.000355发布于 2019-09-11 12:42:59
您建立了连接,但没有打印消息。在客户端,
而不是这样:
@sio.event
def my_message(data):
print('message received with ', data)
sio.emit('my response', {'response': 'my response'})用这个:
@sio.event
def my_message(data):
print('message received with ', data)
sio.emit('my response', {'response': 'my response'})发布于 2020-10-01 16:22:52
我最近建立了一个python系统,用于本地服务器和AWS服务器之间的通信。在AWS上,我使用了作为服务器,因为我想提供网页访问,而用于客户机。
我不确定做这件事的首选方法,但我使用了(在服务器上)
@sio.on('my_new_message')
def process_message(data):
logging.warning("Data received: "+data)然后在客户端:
sio.emit('my_new_message', "Test message")关键是发出引用服务器上的处理程序中给出的名称(如果客户机上也有处理程序,则相反)。通过这种方式,您可以调用任何您想要的处理程序,只要您使用emit引用它。
https://stackoverflow.com/questions/57889303
复制相似问题