WebSocket打开握手在https中超时

时间:2019-06-21 09:04:04

标签: django ssl nginx websocket uwsgi

与'wss:// ip_address:8008 / ws / events?subscribe-broadcast'的WebSocket连接失败:WebSocket打开握手超时

仅在HTTPS中打开用户界面时超时,在HTTP中可以正常工作...

我已经在ubuntu中使用OpenSSL生成了证书

我的uwsgi配置是

For Each ws In ThisWorkbook.Worksheets


    ws.Protect Password:=UniquePassword

    If Not ws.Name = "Post" Then


        ws.Visible = False

    End If

Next ws

我的nginx配置是

socket = /tmp/uwsgi.sock   
chmod-socket = 666  
socket-timeout = 60 
chdir = <django path>
wsgi-file  = <django_path>/wsgi.py
virtualenv = <path_to_virtualenv>
vacuum = true
enable-threads  = true
threads=500
startup-timeout = 15
graceful-timeout = 15
http-socket=<my_ip>:8008
http-websockets=true

我正在使用带有WS4redis软件包的Django。

1 个答案:

答案 0 :(得分:1)

要使Web套接字通过Tls(wss)协议工作,您需要生成ssl证书,在生成证书后,将以下行添加到uwsgi.ini文件中。

0.9606463013980241

并重新启动服务器(可选,您还可以再传递2个字段[,ciphers,ca]) 更多详细信息,请参见here

或者,如果您的消息代理有能力,则可以使用Mqtt或Stomp等消息传递协议直接将其公开给客户端