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

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

以下是相关代码:

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楼 票数:0

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

  ask by David Graff translate from so

未解决问题?本站智能推荐:

1回复

Flask:如果从使用相同 IP 地址的另一台机器打开,网络摄像头将无法在 HTML 中工作

我正在使用烧瓶。 如果使用托管设备的 IP 地址打开网络摄像头,则无法在 HTML 中工作。 该网站已加载,但浏览器未检测到该网站正在请求访问网络摄像头,而不是从 localhost 尝试相同的工作。 var video = document.getElementById('vide
1回复

Flask:如何根据烧瓶中的聊天室添加聊天记录?

我正在尝试在我的烧瓶应用程序中实现一项功能,用户可以在其中创建或加入房间并彼此聊天。 我已经建立了用户可以聊天,创建和加入聊天室的部分,但是我还想根据他们所在的聊天室添加聊天记录,以便当新用户加入或离开并加入时,他们可以看到所有以前的特定消息。到他们所在的聊天室。如果有人可以帮助我解决此问题,将不胜
1回复

Javascript客户端将不会持续使用Flask-SocketIO进行监听

我正在用Flask-SocketIO学习websockets。 目标是让我的div每秒连续填充一个随机数。 当我运行下面的代码时,只会显示最后一个数字。 但是,在控制台中,我看到所有这些都是同时到达的。 更新此div “控制器”方法是
1回复

socketio:客户端未收到消息

我正在测试socketio以构建具有多个渠道的小型聊天应用程序。 我设法将数据从客户端发送到服务器。 服务器正在发送回已创建通道的消息。 但是,我的客户未收到该消息。 任何的想法? 客户端代码:除两个事件“ channel_already_exists”和“ channel_cre
2回复

如何将实时视频帧从客户端流式传输到 Flask 服务器并返回到客户端?

我正在尝试构建一个客户端服务器架构,我正在使用 getUserMedia() 从用户的网络摄像头捕获实时视频。 现在不是直接在<video>标签中显示视频,我想将它发送到我的烧瓶服务器,对帧进行一些处理并将其扔回我的网页。 我使用 socketio 来创建客户端-服务器连接。 这是我的
2回复

如何在更新 JS 代码后让 Flask 应用程序刷新而无需清除浏览数据

我正在使用 Flask-socketio 开发 Flask 应用程序,使用socketio.run(app, debug=True)运行它,但是每次我更新任何应用程序的 Javascript 代码然后刷新浏览器时,更改都不会生效。 如果我更新任何Python代码,然后刷新,Python的更改会影响-
1回复

如何在flask_socketio中“留出空间”?

我正在创建一个聊天应用程序,我试图让用户使用一个按钮离开房间。 我尝试了 socketio 函数leave_room ,但用户仍然留在房间里,尽管聊天说用户已经离开了。 我的代码: application.py import os import requests from flask import
1回复

我使用socketio构建了一个烧瓶聊天应用程序,我试图发送在线用户数量,但用户只会增加而不会减少

因此,无论何时有新用户连接到该站点,用户数量都会不断增加。 当用户断开连接时,它不会减少! 这是我在python flask中的后端代码〜 和js的前端〜 那么,我应该做出哪些更改,以使在线用户数量也减少?