我正在尝试添加 插座 到一个简单的 闪光 应用,以增加实时聊天。
该 问题 即没有建立套接字连接(终端和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请求正在进行
这是... 重要的 提到,当运行html页面时,使用 实时服务器 (VS CODE扩展)除了后台服务器工作在5000端口外,其他端口都在5500端口。当然,这在这种情况下是没有用的,因为在FLASK框架环境下,不可能在模板内运行一个实时服务器。
如何使之工作 适当 在这种情况下?THANKS !
虽然没有显示错误,但我发现我没有添加CDN到html的socket.io.min.js.现在工作正常,仍然困惑为什么没有出现未解决的引用的错误。
现在可以用了吗?看来Werkzeug 1.0.1是支持websockets的,但是你需要根据他们的文档提供一个规则来启用它。https:/werkzeug.palletsprojects.comen1.0.xrouting。. 你有配置吗?
我最近在做一个聊天应用的时候也遇到了类似的问题,通过使用gunicorn,参考文档解决了这个问题。https:/flask-socketio.readthedocs.ioenlatest。