首页 > 解决方案 > 套接字没有响应 FLASK

问题描述

我正在尝试将套接字添加到一个简单的FLASK应用程序以添加实时聊天。

没有建立套接字连接的问题(终端中没有显示套接字请求,也没有 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 请求

在此处输入图像描述

重要的是要提到,除了在端口 5000 上工作的后端服务器之外,在端口 5500 上使用LIVE SERVER (VS CODE 扩展名)运行 html 页面时,一切正常。当然,在这种情况下这是没有用的,因为它不可能运行FLASK 框架环境中模板内的实时服务器。

在这种情况下如何使其正常工作?谢谢 !

标签: javascriptpythonflaskflask-socketio

解决方案


虽然没有显示错误,但我发现我没有为 socket.io.min.js 添加 CDN 到 html 中。现在效果很好,仍然很困惑为什么没有出现未解决的参考错误。


推荐阅读