套接字不响应FLASK

问题描述 投票:0回答:1

我正在尝试添加 插座 到一个简单的 闪光 应用,以增加实时聊天。

问题 即没有建立套接字连接(终端和JS日志信息中没有显示套接字请求,控制台也没有错误)。

相关JS代码

$(document).ready(function(){
 var socket = io.connect('http://127.0.0.1:5000');
    socket.on('connect', function() {
        console.log("Test");
        socket.send('User has connected !');

    }); 

    socket.on('message', function(msg) {
        console.log('Received message');
        $("#messages").append('<li>'+msg+'</li>');

    });

    $('#sendbutton').on('click', function() {
        console.log("message sent");
        socket.send($('#myMessage').val());
        $('#myMessage').val('');
    }); 

});   

相关python代码。

app = Flask(__name__)
socketio = SocketIO(app,cors_allowed_origins="*")   
@socketio.on('message')
def handleMessage(msg):
    print('Message : ' , msg)
    send(msg,broadcast=True)

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

@app.route('/')
def index():
    return render_template('Home.htm')

#and other routes..

PIP冻结输出

asn1crypto==0.24.0
backports.functools-lru-cache==1.6.1
click==7.1.2
configparser==3.5.0b2
cryptography==2.6.1
cycler==0.10.0
dbus-python==1.2.12
entrypoints==0.3
enum34==1.1.6
Flask==1.1.2
Flask-MySQLdb==0.2.0
Flask-WTF==0.14.3
gyp==0.1
ipaddress==1.0.17
itsdangerous==1.1.0
Jinja2==2.11.2
keyring==18.0.1
keyrings.alt==3.1.1
kiwisolver==1.1.0
MarkupSafe==1.1.1
matplotlib==2.2.3
mysqlclient==1.4.6
numpy==1.16.6
olefile==0.46
pandas==0.24.2
passlib==1.7.2
Pillow==6.1.0
pycrypto==2.6.1
PyGObject==3.34.0
pyparsing==2.4.7
python-dateutil==2.8.1
pytz==2020.1
pyxdg==0.25
scipy==1.2.3
SecretStorage==2.3.1
six==1.12.0
subprocess32==3.5.4
Werkzeug==1.0.1
WTForms==2.3.1

在终端中,只有HTTP请求正在进行

enter image description here

这是... 重要的 提到,当运行html页面时,使用 实时服务器 (VS CODE扩展)除了后台服务器工作在5000端口外,其他端口都在5500端口。当然,这在这种情况下是没有用的,因为在FLASK框架环境下,不可能在模板内运行一个实时服务器。

如何使之工作 适当 在这种情况下?THANKS !

javascript python flask flask-socketio
1个回答
0
投票

虽然没有显示错误,但我发现我没有添加CDN到html的socket.io.min.js.现在工作正常,仍然困惑为什么没有出现未解决的引用的错误。


0
投票

现在可以用了吗?看来Werkzeug 1.0.1是支持websockets的,但是你需要根据他们的文档提供一个规则来启用它。https:/werkzeug.palletsprojects.comen1.0.xrouting。. 你有配置吗?

我最近在做一个聊天应用的时候也遇到了类似的问题,通过使用gunicorn,参考文档解决了这个问题。https:/flask-socketio.readthedocs.ioenlatest。

© www.soinside.com 2019 - 2024. All rights reserved.