Как подключиться к серверу 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 во втором разделе кода.

Другие вопросы по тегам