知方号

知方号

Channels

 与django基于类的视图类似,Channels也提供基于类的consumers,这些consumers的类都继承自同一个类BaseConsumer。通过下面的代码可以导入该类:

from channels.generic import BaseConsumer

 Channels在处理每个消息时会实例化一个对象,来处理相应的消息。每个类实例都有两个属性,self.message当前处理的消息,self.kwargs定义路由时传递的参数。routings使用route_class来替换route,来实现基于类的consumers的路由。如下:

from channels import route, route_classfrom . import consumerschannel_routing = [ route_class(consumers.ChatServer, path=r"^/chat/"),] BaseConsumer

 所有Consumer类的基类,但是我们仍然可以直接使用它。

from channels.generic import BaseConsumerclass MyConsumer(BaseConsumer): method_mapping = { "channel.name.here": "method_name", } def method_name(self, message, **kwargs): pass

 method_mapping是一个字典,定义了Channel_name到方法的路由,进入到路由的消息就会传给相应的方法来处理。

WebsocketConsumer

 Channels

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。