gpt4 book ai didi

django - 没有 channel 层或任何其他免费托管的 channel

转载 作者:IT王子 更新时间:2023-10-29 06:03:20 24 4
gpt4 key购买 nike

我在 django 2.0 nad django-channlels 2.0 中有一个项目,我需要托管我按照文档进行操作,我能够在本地主机上运行 channel 和 redis但是当我在 pythonanywhere 上托管时,它显示它不支持 websocket,所以我在 heroku 上托管,但他们要求验证信用卡信息,我不必运行 redis。是否有额外的托管网站我可以运行 redis免费服务器

或者是否可以在没有 channel_layer 和 redis 的情况下实现 channel 。我的代码在本地主机上运行良好,但不能免费在线托管。

class PageConsumer(WebsocketConsumer):
def connect(self, **kwargs):
self.accept()
channel_layer = get_channel_layer()
async_to_sync(channel_layer.group_send)("admin", {"type": "analytics.admin_message", "message": "plus"})

def disconnect(self, close_code):
channel_layer = get_channel_layer()
async_to_sync(channel_layer.group_send)("admin", {"type": "analytics.admin_message", "message": "minus"})

对应的接收者

class ChatConsumer(WebsocketConsumer):
def connect(self, **kwargs):
self.accept()
async_to_sync(self.channel_layer.group_add)("admin", self.channel_name)

def disconnect(self, close_code):
async_to_sync(self.channel_layer.group_discard)("admin", self.channel_name)

def analytics_admin_message(self, something):
if something["message"] == "plus":
self.send(text_data=json.dumps({
'message': "plus"
}))

else:
self.send(text_data=json.dumps({
'message': "minus"
}))

def receive(self, text_data):
print("data hai bhyi", text_data)
text_data_json = json.loads(text_data)
message = text_data_json['message']

self.send(text_data=json.dumps({
'message': message
}))

设置.py

CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("127.0.0.1", 6379)],
},
},
}

最佳答案

from the docs

Channel layers are an entirely optional part of Channels as of version 2.0. If you don’t want to use them, just leave CHANNEL_LAYERS unset, or set it to the empty dict {}.

这意味着您将无法在您所依赖的消费者中使用 self.channel_layer

因此,它是可选的,但您需要它。

In memory exists :

CHANNEL_LAYERS={
"default": {
"BACKEND": "channels.layers.InMemoryChannelLayer"
}
}

关于django - 没有 channel 层或任何其他免费托管的 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53271407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com