我在使用Python开发socket.io时遇到困难。我正在使用此lib
我使用this android部分和lib示例运行了一个聊天应用程序。我想从一个单独的文件中触发服务器端的事件。这是我的代码。
import socketio
import eventlet
from flask import Flask, render_template
sio = socketio.Server(logger=True, async_handlers= True)
app = Flask(__name__)
eventlet.monkey_patch()
@sio.on('connect', namespace='/d')
def connect(sid, environ):
print('connect ', sid)
pass
@sio.on('messaget', namespace='/d')
def messaget(sid, data):
print('message ', data)
# sio.emit('messaget', data, namespace='/d')
# sendmsg("YO YO")
@sio.on('disconnect', namespace='/d')
def disconnect(sid):
print('disconnect ', sid)
def start_socket(app):
# wrap Flask application with socketio's middleware
app = socketio.Middleware(sio, app)
eventlet.wsgi.server(eventlet.listen(('', 8000)), app)
def sendmsg(data):
my_data= { 'text': data };
sio.emit('messaget', my_data, namespace='/d')
start_socket(app)
我正在从另一个python文件中调用sendmsg("dipen")
。我正在向所有[/ d] 发送日志发出事件“messaget”但是android应用程序没有收到任何消息。如果事件是从Android应用程序发出的,那就有用了。我尝试使用NodeJs代码并且它适用于NodeJs代码,因此我非常确定我的Python代码中存在错误。希望有人能救我脱离这一点。
答案 0 :(得分:0)
从Android客户端发送消息。你的Python代码是否得到它?如果没有,请检查您是否已连接到同一名称空间。