热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python–使用轮询而不是websockets的FlaskSocketIO服务器

我正在研究Flask-SocketIO服务器,它运行得很好.但是,我在服务器日志中收到了很多这样的请求:“GETsocket.io?EIO3\u0026amp;transportp

我正在研究Flask-SocketIO服务器,它运行得很好.

但是,我在服务器日志中收到了很多这样的请求:

“GET /socket.io/?EIO=3\u0026amp;transport=polling\u0026amp;t=LBS1TQt HTTP / 1.1”

这是我正在使用的代码:

from flask import Flask, render_template, redirect, url_for
from flask_socketio import SocketIO, emit
import json
def load_config():
# configuration
return json.load(open('/etc/geekdj/config.json'))
cOnfig= load_config()
geekdj = Flask(__name__)
geekdj.config["DEBUG"] = config["debug"]
geekdj.config["SECRET_KEY"] = config["secret_key"]
geekdj.config.from_envvar("FLASKR_SETTINGS", silent=True)
socketio = SocketIO(geekdj)
@geekdj.route('/')
def index():
return render_template('index.html')
# SocketIO functions
@socketio.on('connect')
def chat_connect():
print ('connected')
@socketio.on('disconnect')
def chat_disconnect():
print ("Client disconnected")
@socketio.on('broadcast')
def chat_broadcast(message):
print ("test")
emit("chat", {'data': message['data']})
if __name__ == "__main__":
socketio.run(geekdj, port=8000)

和index.html中的JS:



$(document).ready(function(){
// the socket.io documentation recommends sending an explicit package upon connection
// this is specially important when using the global namespace
var socket = io.connect('http://localhost:8000');
socket.on('connection', function(socket) {
socket.emit('foo', {foo: "bar"});
socket.join("test");
});
socket.on('joined', function(data) {
console.log('Joined room!');
console.log(data["room"]);
});
});

如果可能的话,我更愿意使用实际的Websockets,有没有人知道为什么SocketIO会回归投票?

解决方法:

我找到了解决方案in this other Q/A.

事实证明,SocketIO使用最新的连接类型设置了一个COOKIE.就我而言,这是民意调查.

所以,我改变了我的JS中的SocketIO连接语句

var socket = io.connect(‘http:// localhost:8000’);

var socket = io.connect(null,{port:8000,rememberTransport:false});

现在Chrome开发者工具中的网络选项卡下的websockets类型中有活动(之前没有):

enter image description here


推荐阅读
author-avatar
雷宠专业摄影工作室
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有