2016-09-16 9 views
1

私はPythonでsocket.ioの開発に取り掛かっています。私はこれを使用していますlibsocketIo pythonからのイベントの出力

私はthisアンドロイド部分と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")を呼んでいます。私はログイベント「messaget」をすべて[/ d]に発信していますが、アンドロイドアプリはメッセージを受け取っていません。また、Androidアプリからイベントが発生している場合でも動作します。 NodeJsコードで試してみましたが、NodeJsコードで動作していましたので、私のPythonコードで何か問題があると確信しています。誰かが私からこのことを救うことができると願っています。

+0

クライアントコードの関連部分を共有できますか? – Miguel

+0

@Miguel私はこのリンクのサンプルを使用しています - https://github.com/sreejesh79/android-socket.io-server-demo/blob/master/index.js –

+0

あなたはJavaScriptクライアントコードを指摘しました。 Androidクライアントに問題があるとお考えでしたか? – Miguel

答えて

0

Androidクライアントからメッセージを送信します。あなたのPythonコードはそれを取得しますか?そうでない場合は、同じ名前空間に接続しているかどうかを確認してください。

+0

はい、メッセージを取得し、そのスレッドからイベントを発行することもできます。しかし、それは別のスレッド(ファイル)から動作していない –

関連する問題