javascript - Flask SocketIO 不适用于 socketio javascript
问题描述
我正在使用 Flask socketio 和 socketio.js 制作一个实时监听 Flask 应用程序它可以在我的本地主机上的机器上运行,但是当我将它托管在 heroku 或 Repl.it 上时,我会像每秒一样在网页的控制台中不断收到此错误:
POST https://karim-listener.herokuapp.com/socket.io/?EIO=4&transport=polling&t=NaQW2AR&sid=fptAT-gOv9xkna-MAAAM 400 (BAD REQUEST)` </h4>
主文件
from flask import Flask, render_template, redirect
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
CORS(app)
@app.route("/", methods=["GET", "POST"])
def index():
return render_template("index.html")
@socketio.on('new-user')
def handle_message(room_num):
emit(f"new-user")
socketio.run(app, host="0.0.0.0", port=80, debug=True)
索引.html
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js" integrity="sha512-q/dWJ3kcmjBLU4Qc47E4A9kTB4m3wuTY7vkFJDTZKjTs8jhyGQnaUrxa0Ytd0ssMZhbNua9hE+E7Qv1j+DyZwA==" crossorigin="anonymous" ></script>
</head>
<body>
<button id="pp-btn" onclick="playAndPause()">Play</button>
<audio src="/static/f1.mp3" id="audio"></audio>
<div class="alert">
</div>
<script type="text/javascript" charset="utf-8" >
var socket = io();
socket.on("newuser", function(){
console.log("new user")
})
socket.on("connect", function(){
socket.emit("new-user")
})
</script>
</body>
</html>
我真的很想知道为什么它在本地主机上工作得非常好,但是当我部署时,我收到来自 socketio 的 400 错误 POST 请求?
解决方案
推荐阅读
- python - Python - 将目录中的所有 xlsx 文件合并到一个文件中
- reactjs - TypeError:运行测试时无法读取 null 的属性“标题”
- angular - D3 PIE图表在输入和更新角度应用程序时动画
- html - 如何在 GitHub README.md 中使用边距/填充?
- java - AWSIotMqttClient getConnectionStatus() 不显示实际连接状态
- sql - 如何在 SQL Server 中形成管理层次结构?
- powershell - 使用 powershell 将超过一周的文件夹中的文件存档到子文件夹
- clickonce - clickonce 安装失败 - URLDownloadToCacheFile HRESULT '-2146697191'
- sql - 带有 GROUP BY 的 SQL COUNT(*) 和带有总计数的最后一行
- reactjs - 打字稿中的React Hooks useState初始空数组值