js:198到“wss://my_progect. herokuapp.com/socket.io/.”的网络套接字连接失败:WebSocket在建立连接之前关闭

wlsrxk51  于 2022-12-18  发布在  其他
关注(0)|答案(1)|浏览(125)

我在使用flank-socketio时遇到了一个问题。它会重复上面的错误,我不知道为什么。
也许是Heroku的问题,我的网站部署在那里?我有
'加载资源失败:服务器以状态400(BAD REQUEST)响应
“连接到”wss://my_progect. herokuapp.com/socket.io/?EIO = 4&transport = websocket & sid =...“的网络套接字连接失败:“
'POST https://my_progect.herokuapp.com/socket.io/?EIO=4&transport=polling&t=... 400(错误请求)'
'获取https://my_progect.herokuapp.com/socket.io/?EIO=4&transport=polling&t=... 400(错误请求)'
错误也
我的过程文件:

web: gunicorn app:app

我的html导入

<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>
<script src="{{ url_for ('static', filename = 'likes_groups.js') }}"></script>

我的js代码

document.addEventListener('DOMContentLoaded', () => {

var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port);

socket.on('connect', () => {
    document.querySelectorAll('button').forEach(button => {
        button.onclick = () => {
            const id = button.dataset.id;
            const choice = button.dataset.choice;

            socket.emit('likes groups', [id, choice]);
        };
    });
});

和一些py文件

socketio = SocketIO(app, async_mode='eventlet')

@app.route('/voting_groups')
@login_required
def voting_groups():
 return render_template('voting_groups.html')

@socketio.on('likes groups')
def likes_groups(data):
   "some code"

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

在本地,所有的工作都没有错误,但当我在Heroku上部署项目时,它崩溃了。我看到同样的问题得到了解决,但没有一个解决方案对我不起作用(但也许我是个盲人)
谢啦,谢啦
我想将用户的选择发送到我的flask服务器

hmmo2u0o

hmmo2u0o1#

您的过程文件应该如下所示:

gunicorn --worker-class eventlet --timeout 9999 --workers 1 wsgi:app

相关问题