python: socketio-client
jsからだけではなく,pythonからsocketio serverにリクエストしたい.
1. python-socketio-client
2. python-socketio-sever
3. js
という順にメッセージを送りたい
Install
sudo apt-get install python-socketio-client sudo pip install flask-socketio
基本
- namespaceとevent nameはちゃんときめること
Server (Flask-SocketIO)
#!/usr/bin/env python from flask import Flask, render_template from flask.ext.socketio import SocketIO, emit app = Flask(__name__) app.config['SECRET_KEY'] = 'secret!' socketio = SocketIO(app) event_name = "my_event" namespace = "/my_namespace" @socketio.on(event_name, namespace=namespace) def test_message(message): print("called!") print("receive: ") print(message) #emit('my response', {'data': message['data']}) if __name__ == '__main__': socketio.run(app)
Client (Python socketio-client)
#!/usr/bin/env python from socketIO_client import SocketIO, BaseNamespace class MyNamespace(BaseNamespace): def on_aaa_response(self, *args): print('on_aaa_response', args) socketIO = SocketIO('localhost', 5000) namespace = "my_namespace" event_name = "my_event" my_namespace = socketIO.define(MyNamespace, "/my_namespace") my_namespace.emit(event_name, {"message": "from python socketio-client"}) socketIO.wait(seconds=1)
結果
Client側のスクリプトを実行した時のServer側のログ
$ python socketio-server_sample.py * Running on http://127.0.0.1:5000/ called! receive: {u'message': u'from python socketio-client'}
jsまで連携するにはFlask-SocketIOでJSに向けてemitすればいい.
namespame/eventnameはちゃんと定義しておくこと.