flask-websocket(1)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask-websocket(1)相关的知识,希望对你有一定的参考价值。

参考技术A 之后再更新几篇完善的功能

web_socket/templates/index.html

web_socket/server.py

如何连接到 Flask-WebSocket 服务器?

【中文标题】如何连接到 Flask-WebSocket 服务器?【英文标题】:How to connect to Flask-WebSocket server? 【发布时间】:2015-08-29 04:13:52 【问题描述】:

我正在按照本教程尝试在我的应用中使用 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

在教程中,滚动到 A SocketIO 客户端 - 本节开始讨论 websocket 的客户端:JavaScript。

我们也可以看example's code on GitHub看that section。最后,documentation 在第二个代码部分也有 HTML。

【讨论】:

以上是关于flask-websocket(1)的主要内容,如果未能解决你的问题,请参考以下文章

干迷宫

A星算法

Python迷宫游戏(基础版)

最短路径(迪杰斯特拉算法)

栈实现迷宫

1.1 函数