当前位置: 首页 > news >正文

自己做网站的公司宁波正规优化seo公司

自己做网站的公司,宁波正规优化seo公司,wordpress完整模板下载,广州网站建设设计情况描述 近期计划测试一下django对日志打印的支持#xff0c;一般都是用websocket的方式#xff0c;想测试一下SSE (Server-sent events)的服务端推送#xff0c;发现过程中存在报错#xff1a; Traceback (most recent call last):File D:\Software\Anaconda3\li…情况描述 近期计划测试一下django对日志打印的支持一般都是用websocket的方式想测试一下SSE (Server-sent events)的服务端推送发现过程中存在报错 Traceback (most recent call last):File D:\Software\Anaconda3\lib\wsgiref\handlers.py, line 137, in runself.result application(self.environ, self.start_response)File D:\IDE Projects\Music\venv\lib\site-packages\django\contrib\staticfiles\handlers.py, line 76, in __call__return self.application(environ, start_response)File D:\IDE Projects\Music\venv\lib\site-packages\django\core\handlers\wsgi.py, line 142, in __call__start_response(status, response_headers)File D:\Software\Anaconda3\lib\wsgiref\handlers.py, line 249, in start_responseassert not is_hop_by_hop(name),Hop-by-hop headers not allowed AssertionError: Hop-by-hop headers not allowed部分代码 response HttpResponse(content_typetext/event-stream)response[Cache-Control] no-cache# AssertionError: Hop-by-hop headers not allowedresponse[Connection] keep-aliveresponse[Transfer-Encoding] chunked初步分析 1报错大致是说Hop-by-hop headers not allowed 说是HTTP1.0 不支持这个头部 HTTP 首部字段将定义成缓存代理和非缓存代理的行为分成 2 种类型。 端到端首部End-to-end Header 分在此类别中的首部会转发给请求 / 响应对应的最终接收目标且必须保存在由缓存生成的响应中另外规 定它必须被转发。 逐跳首部Hop-by-hop Header 分在此类别中的首部只对单次转发有效会因通过缓存或代理而不再转发。HTTP/1.1 和之后版本中如果要使用 hop-by-hop 首部需提供 Connection 首部字段。 2依据堆栈信息找到对应的判断函数 is_hop_by_hop(name) 只要头部存在如下的集合元素就会被判定为 hop_by_hop # wsgiref\handlers.pyif __debug__:for name, val in headers:name self._convert_string_type(name, Header name)val self._convert_string_type(val, Header value)assert not is_hop_by_hop(name),Hop-by-hop headers not allowed# handlers\wsgi.py _hoppish {connection:1, keep-alive:1, proxy-authenticate:1,proxy-authorization:1, te:1, trailers:1, transfer-encoding:1,upgrade:1 }.__contains__def is_hop_by_hop(header_name):Return true if header_name is an HTTP/1.1 Hop-by-Hop headerreturn _hoppish(header_name.lower())3于是乎我把Connection 和 Transfer-Encoding 注释掉就正常了 附带SSE 在django的使用办法 一前端 HTML 部分代码 p idinfo测试/pscriptvar need_close false;var eventSource new EventSource(/sse);info_elm document.getElementById(info);// 开启连接的监听// 解决重复请求默认会无限重连 也可以由后端内容决定是否关闭eventSource.onopen function(){if (need_close){eventSource.close();}need_close true;};// 收到事件的监听eventSource.onmessage function(event) {// 处理接收到的事件数据info_elm.innerText info_elm.innerText event.data \n;};/script二django ### views.py from django.http import StreamingHttpResponsedef sse(request):def event_stream():# 测试读取当前文件with open(appname/views.py, encodingutf-8) as file:for line in file:# time.sleep(1)yield fdata: {line}\n\nreturn StreamingHttpResponse(event_stream(), content_typetext/event-stream, headers{Cache-Control:no-cache})def hello(request):return render(request, sse.html )### urls.py urlpatterns [path(sse, views.sse),path(hello, views.hello), ](三) 结果 http://127.0.0.1:8000/sse 能看到只有一个请求内容是逐步刷新出来的 http://127.0.0.1:8000/hello 能看到有三个请求第二个是SSE请求结束后EventSource自动拉起了第三个请求由于在onopen 配置了变量控制所以后期不会有新的推送进来导致数据重复载入前端 (四) 不可行方案 如下方案主要是 response.flush() 并不能把数据刷新到客户端所以这个与直接返回结果没太大区别也可能是我目前使用方式不对或理解没到位。 官方文档: response.flush() 这个方法使一个 HttpResponse 实例成为一个类似文件的对象 def sse(request):response HttpResponse( content_typetext/event-stream)response[Cache-Control] no-cachefor i in range(5):response.write(fdata:{i} \n\n)response.write(id: {i} )response.write(fmessage: {datetime.datetime.now()})response.write(event: 发送数据)# 数据发送到客户端response.flush()time.sleep(1)return response总结 1、发现网上很多给的代码都跑不起来要么不和预期终究还是得找官方 2、尝试看看源码可能能找到问题原因还有一些没接触过的写法 3、可以用while True 然后将数据读取写入到循环内部然后通过控制时间间隔来减少推送 参考链接 HTTP 首部字段详细介绍 Python __debug__内置变量的用法 SSE介绍 W3shcool SSE 关于SSE关闭的问题 EventSource专题
http://www.yutouwan.com/news/32477/

相关文章:

  • 做电商网站需要多少时间如何提升学历
  • 低价手机网站建设计算机网页设计实训报告
  • 做电脑游戏破解的网站建网站和app
  • 如何自己建造网站世界十大网站排名
  • 郑州网站设计培训广州seo排名外包
  • 石家庄建网站硬件工程师和软件工程师的区别
  • 做视频网站要注意什么企业门户网站设计论文
  • 网站外推和优化绍兴cms建站系统
  • 怎么把电脑网站做服务器吗网站首页结构布局
  • 数据交易网站源码查失信被执行人名单查询
  • 西城做网站个人网站的设计和建设
  • 深圳装修公司网站室内设计师排名
  • 网站建设与管理课程报告wordpress去除tag
  • 提升网站流量该怎么做广西住建领域培训考试系统
  • 学技巧网站制作北京网站建站推
  • 企业网站的建设有哪些经典问题wordpress应用app主题
  • 青海wap网站建设公司广告推广哪个平台好
  • 深圳外贸网站开发建设闵行网站设计
  • 建设银行手机银行网站登录宜兴市网站建设
  • 一般网站的宽度是多少好的做网站的公司有哪些
  • 做app推广上哪些网站朋友圈自己做的网站
  • 案例建网站计算机二级网页制作基础
  • 网站图片切换怎么做的塑胶网站建设
  • 网站开发 验收移交wordpress2016免费主题
  • 淘宝买网站开发不行吗微营销推广平台有哪些
  • 万网空间上传网站上海南山做网站
  • 聊城有限公司网站建设 中企动力济二分网站建设中页面下载
  • 金坛网站建设报价苏州免费发布信息网站
  • 计算机大二建设网站旅游网站开发的作用
  • 天津做网站公司哪家好网站优化的要求