Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 6, 2017 02:19:38

polin11
Зарегистрирован: 2013-05-02
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

channels создать 2 независимые группы

есть хороший пример на http://channels.readthedocs.io/en/stable/index.html обмена соощений между группами
нужно создать 2 независмые группы (chat и init), для обмена сообщениями, которые получают только собщения своей группы, пробовал так

 # In consumers.py
from channels import Group
# Connected to websocket.connect
def ws_add(message):
    message.reply_channel.send({"accept": True})
    Group("chat").add(message.reply_channel)
    Group("init").add(message.reply_channel)
	
# Connected to websocket.receive
def ws_message(message):
    Group("chat").send({
        "text":  message.content['text'] + 'chat',
    })
	Group("init").send({
        "text":  message.content['text'] + 'init',
    })
# Connected to websocket.disconnect
def ws_disconnect(message):
    Group("chat").discard(message.reply_channel)
	Group("init").discard(message.reply_channel)

routing.py
from channels.routing import route
from myapp.consumers import ws_add, ws_message, ws_disconnect

channel_routing = [
route("websocket.connect", ws_add),
route("websocket.receive", ws_message),
route("websocket.disconnect", ws_disconnect),
]
template.html
 //Группа chat
socket = new WebSocket("ws://" + window.location.host + "/chat/");
socket.onmessage = function(e) {
    alert(e.data);
}
socket.onopen = function() {
    socket.send("hello world");
}
// Call onopen directly if socket is already open
if (socket.readyState == WebSocket.OPEN) socket.onopen();
//Группа INIT
socket1 = new WebSocket("ws://" + window.location.host + "/init/");
socket1.onmessage = function(e) {
    alert(e.data);
}
socket1.onopen = function() {
    socket1.send("hello world");
}
// Call onopen directly if socket is already open
if (socket1.readyState == WebSocket.OPEN) socket1.onopen();

Не получается сделать изолированные группы, сообщения приходят в обе группы

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version