javascript - 即使建立连接后,Flask socketio 也没有收到来自 javascript 的任何消息

标签 javascript flask flask-socketio

在 Flask 和 javascript 之间建立连接后,我试图从 javascript 获取响应。onconnect() 函数工作正常,但 onmessage() 不能正常工作。

我也尝试过使用 JavaScript 中的 Broadcast 方法,但它不起作用。

这是我的app.py

app=Flask(__name__)
bootstrap=Bootstrap(app)
socketio=SocketIO(app)

app.config['SECRET_KEY']="MY_KEY"

@app.route('/')
def login():
    return render_template('index.html')

@app.route('/home',methods=['GET','POST'])
def home():
    if(request.method=='POST'):
        data=request.form
        name=data['name']
        return render_template('message.html',name=name)
    else:
        return render_template('index.html')

@socketio.on('connect')
def onconnect():
    print("connect")

@socketio.on('message')
def onmessage(message):
    print('message')

if(__name__=='__main__'):
    socketio.run(app)

这是我的 JavaScript 文件

const ws =io.connect(window.location.href)

ws.on('connect', function() {
  console.log("Connection estalished")
  ws.emit("adsd",broadcast=true)
});

编辑: javscript 中有一个错误。

const ws =io()

这应该用于建立连接,而不是以前的方法。

我的项目已完成。 Link for the github project

最佳答案

首先,只有服务器可以广播,客户端只能发送到服务器。

其次,您要发出一个名为 adsd 的事件,因此您需要在服务器中添加该事件的处理程序。例如:

@socketio.on('adsd')
def adsd_handler():
    print('got adsd!')

关于javascript - 即使建立连接后,Flask socketio 也没有收到来自 javascript 的任何消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57821250/

相关文章:

python - flask-socketio wss中的握手响应为空

javascript - 如何使用另一个id在javascript中引用一个div

javascript - 在数组中查找对象并更改其属性(如果我知道它的其他属性)

Python:对象在哪里实例化以及如何在对象创建期间传递参数?

python - 托管在 S3 上的 Flask static_folder

javascript - 通过Websockets从Python Flask服务器不断向客户端发送数据

javascript - 如何使用 JS 从 HTML 字符串中删除结束标记

javascript - 将 Node.js 源代码编译成字节码并使用它的步骤

python - 尝试在 Nginx 服务器 Ubuntu 21.10 实例上部署我的 flask 应用程序时,我得到了经典的 "Permission denied while connecting to upstream"

python - websocket 页面在超时后按下提交按钮时重置