我在django 2.0 nad django-channlels
2.0中有一个项目需要托管,我按照文档进行操作,能够在localhost和redis上运行通道,但是当我在pythonanywhere上托管时,它表明它不支持websocket,所以我托管在heroku上,但在那里他们要求我不必运行redis的信用卡信息的验证。是否有其他托管网站可以免费运行redis
erver
或者在没有channel_layer和redis的情况下实现通道是否可行。我的代码在本地主机上运行良好,但不能免费在线托管。
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
}))
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("127.0.0.1", 6379)],
},
},
}
从文档
从2.0版开始,通道层是通道的完全可选部分。如果您不想使用它们,只需将CHANNEL_LAYERS保持未设置状态,或将其设置为空的dict {}。
这将意味着您将无法self.channel_layer
在所依赖的消费者中使用。
因此,它是可选的,但您需要它。
在内存中存在:
CHANNEL_LAYERS={
"default": {
"BACKEND": "channels.layers.InMemoryChannelLayer"
}
}
直播(频道)管理 创建频道 删除频道 修改频道信息 修改观看页信息 获取频道列表 获取指定频道信息 上传直播文档 禁止直播流推送 恢复直播流推送 频道定制观看页地址 获取频道观众人数显示配置 设置频道观众人数显示配置 查询频道功能开关状态 设置频道功能开关状态 直播权限操作管理 自定义授权说明 身份赋予API 获取频道授权码 设置自定义授权跳转地址 设置频道授权观看方式 获取频道授权观看 更新互动
我有一个YouTube用户,其中不包含YouTube频道。但是,如果我使用“mine=true”属性查询youtube.channels.list API方法,YouTube数据API确实会返回一个频道,如下面的示例(1)所示。 例: (1) 返回一个通道(mine=true;通过使用OAuth): https://developers.google.com/apis-explorer/#p/yo
创建频道 删除频道 修改频道信息 修改观看页信息 获取频道列表 获取指定频道信息 上传直播文档 禁止直播流推送 恢复直播流推送 频道定制观看页地址 获取频道观众人数显示配置 设置频道观众人数显示配置 查询频道功能开关状态 设置频道功能开关状态
请求header POST /v1/activities/{频道id}/verifyRunning Authorization:Bearer {ACCESS TOKEN} Content-Type:application/json 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请将"{频道id}"替换您需要获取的频道id { "startTime
HTTP接口文档 频道集成信息接口 GET /activity/api/integrated_info?actid=xxxx URL 参数 参数 描述 取值 是否必填 actid 频道HashID string 必填 返回 参数 描述 取值 errcode 错误码 int msg 错误信息 string name 频道名称 string description 频道描述 string visibl
我正在制作一个discord机器人,我希望它在加入新公会时发送消息。 但是,我只想让它在它加入的公会的通道中发送消息: 我注意到的问题是只返回服务器的第一个通道的名称。我想通过所有渠道迭代,最后只在渠道上发送消息。 它的变通方法是什么?