分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

websockets ?django nginx ?webssh

发布时间:2023-09-06 01:43责任编辑:蔡小小关键词:nginxdjangowebsocket

websocket

1.实现方案一:

  django + dwebsocket    + gunicorn +nginx

  pip install dwebsocket

  部分代码

  

from dwebsocket import require_websocket@require_websocketdef ws(request): ???if not request.is_websocket(): ????????????????# 判断是不是websocket连接 ???????pass ???else: ???????多线程 ???????while request.websocket.has_messages: ???????????msg= request.websocket.wait() ???????????if msg: ??????????????。。。接受方法。。。req.websocket.send(data)

  

       设置 gunicorn 的timeout 解决30秒退出

  nohub gunicorn -w 6 -b 127.0.0.1:8080 --timeout 3600&

  nginx.conf

server{ ???# the port your site will be served on ???listen ?????80; ???# the domain name it will serve for ???#server_name www.scloud.cn; # substitute your machine‘s IP address or FQDN ???charset ????utf-8; ???# max upload size ???client_max_body_size 75M; ??# adjust to taste ???# Django media ???location /media ?{ ???????alias /opt/soft/pro_name/media; ?# your Django project‘s media files - amend as required ???} ???location /static { ???????alias /opt/soft/pro_name/static; # your Django project‘s static files - amend as required ???} ???location / { ?????# 反向代理透传客户端ip ?????proxy_set_header X-Real-IP $remote_addr; ?????proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ?????proxy_set_header Host $http_host; ?????proxy_set_header X-NginX-Proxy true; ?????proxy_pass http://localhost:8080; ???} ????#websocket setting ????location /app/websocket_url { ???????proxy_pass http://localhost:8080; ???????proxy_http_version 1.1; ???????proxy_set_header Upgrade $http_upgrade; ???????proxy_set_header Connection "Upgrade"; ???????client_max_body_size 10m; ???????client_body_buffer_size 128k; ???????proxy_connect_timeout 600; ???????proxy_send_timeout 120; ???????proxy_read_timeout 600; ???????proxy_buffer_size 4k; ???????proxy_buffers 4 32k; ???????proxy_busy_buffers_size 64k; ???????proxy_temp_file_write_size 64k; ????}}

  

2.实现方案二:

  django +uwsgi + nginx

       import uwsgi

       uwsgi.websocket_recv_nb() 

       会爆出异常 no Pone   until 30 seconds

       解决方案: 1.修改uwsgi 源码 : 在初始化中将默认的30秒改大,或者注释掉check_ping_pong 方法

        2.误打误撞不知道修改了什么,解决了,但是很遗憾,我忘记了自己做了什么

                     暂时还没弄懂为什么发了ping,没有响应pong

webssh

     xterm.js

     默认是utf-8 ,最小容器是没有按照vim的,使用vim注意解决编码问题,以及width and  height,编码有误会出现闪退问题。 宽和高设置错误,会不显示全屏

版权声明:本文为博主原创文章,未经博主允许不得转载。

websockets ?django nginx ?webssh

原文地址:https://www.cnblogs.com/waken-captain/p/8454722.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved