Как подключиться к серверу Flask-WebSocket?
Я следую этому уроку, чтобы попробовать и использовать Flask-WebSockets
в моем приложении.
http://blog.miguelgrinberg.com/post/easy-websockets-with-flask-and-gevent
Моя проблема в том, что я не знаю, как правильно подключиться к серверу.
Когда я звоню в приложение фляги, они имеют вид:
http://localhost:80/myapp/<route_goes_here>
Мое приложение структурировано следующим образом:
couponmonk/venv/couponmonk
__init__.py
views.py
templates/
index.html
__init__.py
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy.orm import sessionmaker
from sqlalchemy import *
from flask.ext.socketio import SocketIO, emit
app = Flask(__name__)
socketio = SocketIO(app)
engine = create_engine('mysql://root:my_password@localhost/my_db_name')
DBSession = sessionmaker(bind=engine)
import couponmonk.views
views.py
from couponmonk import app, DBSession, socketio
@socketio.on('my event', namespace='/test')
def test_message(message):
emit('my response', {'data': message['data']})
@app.route('/', methods = ['GET'])
def index():
return render_template('index.html')
Учитывая мои настройки, где я должен поставить эту строку:
if __name__ == '__main__':
socketio.run(app)
Я также не уверен, какой адрес поставить для следующей строки в index.html
:
index.html
Код в этом файле идентичен этому ( https://github.com/miguelgrinberg/Flask-SocketIO/blob/master/example/templates/index.html).
var socket = io.connect('what to put here?');
я пробовал http://localhost:80/test
и не получите ответа. Я не уверен, если namespace
должен быть частью адреса или нет.
Спасибо за вашу помощь.
1 ответ
var socket = io.connect('what to put here?');
Это JavaScript, так что это нужно будет <script>
пометьте где-нибудь head
,
В этом руководстве перейдите к разделу "Клиент SocketIO" - в этом разделе рассказывается о клиентской стороне веб-сокета: JavaScript.
Мы также можем посмотреть код примера на GitHub, чтобы увидеть этот раздел. Наконец, документация также содержит HTML во втором разделе кода.