相关疑难解决方法(0)

Heroku 上带有 Django Channels 的 Websocket

我正在尝试将我的应用程序部署到heroku。该应用程序有一个简单的聊天系统,使用 Websockets 和 django 通道。

当我使用 python manage.py runserver 测试我的应用程序时,应用程序的行为正如预期的那样。

我尝试部署该应用程序,除了聊天系统之外,所有功能都可以正常工作。

这是我在 Chrome 控制台中收到的错误消息:

layout.js:108 Mixed Content: The page at 'https://desolate-lowlands-74512.herokuapp.com/index' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://desolate-lowlands-74512.herokuapp.com/ws/chat/19/'. This request has been blocked; this endpoint must be available over WSS.
Run Code Online (Sandbox Code Playgroud)

这就是我试图修复它的方法:我从 ws 转到 wss 我改变了这一点:

 const chatSocket = new WebSocket(
        'ws://'
        + window.location.host
        + '/ws/chat/'
        + friendship_id
        + '/'
      );
      console.log(chatSocket)
Run Code Online (Sandbox Code Playgroud)

对此:

 const chatSocket = new WebSocket(
        'wss://'
        + window.location.host
        + '/ws/chat/'
        + …
Run Code Online (Sandbox Code Playgroud)

python django heroku websocket django-channels

7
推荐指数
1
解决办法
4158
查看次数

如何在docker容器中设置flask-socketio?

您好,我正在尝试在 docker 容器中设置flask-socketio。它似乎可以运行,但是当我尝试访问端口 5000 上的 localhost 时出现错误(来自浏览器),就像我习惯使用 Flask 应用程序一样。它说:无法连接!

我将向您展示 5 个重要文件:Dockerfile、requirements.txt、docker-compose.yml、web_app.py 和 index.html

Dockerfile:

FROM python:3.6.5

WORKDIR /code
COPY * /code/
RUN pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

要求.txt:

Flask==1.0.2
Flask-SocketIO==3.0.1
eventlet==0.24.1
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml:

version: "3"
services:
  web:
    build: ./web
    ports:
      - '5000:5000'
    volumes:
      - './web:/code'
Run Code Online (Sandbox Code Playgroud)

我使用命令 docker-compose up --builddocker-compose run web /bin/bash以交互模式进入这个容器。

web_app.py:

from flask import Flask, render_template
from flask_socketio import SocketIO, emit

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)

@app.route('/')
def index():
    return render_template('index.html')

@socketio.on('my …
Run Code Online (Sandbox Code Playgroud)

python flask eventlet docker flask-socketio

3
推荐指数
1
解决办法
5104
查看次数