繁体   English   中英

flask应用程序和socketIO,用于在客户端之间同步浏览器

flask app and socketIO for syncing up browsers between clients

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试确保我网站的浏览器已同步。 特别是在我的烧瓶应用程序中使用套接字的文本区域。 我希望能够确保人们在大约同一时间观看相同的内容。 它不必是立即的。 如果有人有比每次按下一个键更新插座更好的解决方案?

我真正的问题是,为什么发射器被触发时套接字不在后端打印消息?

以下是相关代码:

from werkzeug import secure_filename
from flask import Flask, render_template, jsonify, make_response, request
import json
import string
import sys
from io import StringIO  # Python3sdf
import OSC
import time
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.ext import mutable

import os
from flask_socketio import SocketIO, emit


project_dir = os.path.dirname(os.path.abspath(__file__))
database_file = "sqlite:///{}".format(os.path.join(project_dir, "music.db"))

app = Flask(__name__)
socketio = SocketIO(app)
app.config["SQLALCHEMY_DATABASE_URI"] = database_file





@socketio.on('value changed')
def value_changed(message):
    print(message)


@app.route('/')


def my_form():
    song_query = SongClass.query.all()
    if song_query[-1]:
        song = str(song_query[-1])
    else:
    song = " "
    if song_query[-2]:
        song2 = str(song_query[-2])
    else:
    song2 = " "
    return render_template('index.html', song=song, song2=song2)





if __name__ == "__main__":
socketio.run(app, host='0.0.0.0', port = 5002)

这是index.html中的相关代码:

<!DOCTYPE html>
<html>
    <head>

        <title>CodeMirror</title>

                <script type="text/javascript" src="js/jquery.min.js"></script>
                <script type="text/javascript" src="plugin/codemirror/lib/codemirror.js"></script>
                <script type="text/javascript" src="js/default.js"></script>
                <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
                <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"></script>
<script type="text/javascript" charset="utf-8">
    $(document).ready(function(){
        var socket = io.connect();
        // the socket.io documentation recommends sending an explicit package upon connection
        socket.on('connect', function() {
            socket.emit('connect', {data: 'I\'m connected!'});
        });
        $('#song').on('change keyup paste', function(event) {
            alert("blah");
        socket.emit('value changed',{data: $('#song').val()});
            return false;

     });
});

<div style="float:left;">
    <textarea rows="40" cols="100" name="song" id="song">{{song}}</textarea>


</html>

我从jquery收到警报,但后端没有任何反应。 IE浏览器,我看不到消息打印。

1 个回复

您正在使用Socket.IO JavaScript客户端的旧版本。 使用2.x版本,我认为您会好的。

1 使用 websockets 同步 Flask 应用程序的客户端

我遵循了有关在烧瓶上同步两个客户端的简单教程,我在本地运行它,但打开“本地主机”的两个选项卡不会使我的滑块同步。 https://www.matthieuamiguet.ch/blog/synchronize-clients-flask-application-websockets 我正在 v ...

2 验证客户端应用程序身份-客户端在浏览器中

我的后端是用PHP编写的(实际上我猜没关系)。 我有用Javascript编写的客户端,该客户端在浏览器中启动。 应用程序通过以下方式工作: 用户访问URL地址并获取用于渲染数据的原始模板 通过ajax,GET查询被发送到后端服务器,查询用于填充原始模板的数据。 响应 ...

3 客户端 Socket.emit 在 Flask-Socketio 应用程序中不起作用

我正在使用 Flask Socketio 构建聊天室应用程序并遇到了一些问题。 我想创建一个按钮,允许用户发布消息,然后将该消息保存在后端的特定聊天室(无数据库)中。 通过“发送到一般”处理程序发帖有效,但发送到特定房间无效。 实际上,对于该事件处理程序,发射根本不起作用。 我的代码如下。 服务器端 ...

5 使用socketio将应用程序状态与客户端同步

我正在使用SocketIO运行节点服务器,该服务器保留一个定期更新的大对象(应用程序状态)。 所有客户端在连接到服务器后都会收到该对象,并应使用套接字(只读)实时更新该对象。 这是我考虑过的: 1:在更新后使用diff向客户端发出更改增量(需要处理交付的可靠性和丢失的更新) ...

9 在客户端浏览器中运行服务器应用程序

我正在使用一个相对较小和简单的桌面应用程序,该应用程序的输出将输入到我正在处理的较大Web应用程序中。 我本来想在Web应用程序中模仿桌面应用程序,所以最终用户不需要在本地安装桌面应用程序。 我现在知道这不可能。 因此,如果我要在我们的服务器上安装此桌面应用程序,则无论如何,客户端浏览 ...

2010-02-03 01:05:41 1 448   client
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM