I want to send a message over a channel using Django Channels. This is what I'm doing. I create a consumer first. I'm able to echo back the received messages. However, not able to send messages to a specific channel/group.
class Consumer(AsyncJsonWebsocketConsumer): > """Consumer.""" > > def _get_connection_id(self): > return ''.join(e for e in self.channel_name if e.isalnum()) > > async def connect(self): > scope = self.scope > user_id = str(scope['user'].user_id) > connection_id = self._get_connection_id() > # Adding connection to DB. > obj = UserConnection.add(connection_id=connection_id, > user_id=user_id) > > # Accept the connection > await self.accept() > > # Adding current to group. > await self.channel_layer.group_add( > user_id, > connection_id, > ) > > async def disconnect(self, close_code): > """Remove the connection and decrement connection_count in > DB.""" > connection_id = self._get_connection_id() > user_id = str(self.scope['user'].user_id) > > UserConnection.drop(connection_id=connection_id) > > # Dropping from group. > await self.channel_layer.group_discard( > user_id, > connection_id, > ) > > async def receive_json(self, data, **kwargs): > """Receive messages over socket.""" > resp = data > # I'm able to echo back the received message after some > processing. > await self.send(json.dumps(resp, default=str)) > > > # This does not works. > def send_to_connection(connection_id, data): > """Send the data to the connected socket id.""" > return get_channel_layer().group_send(connection_id, data) > Now when I try to send a message, the connected socket does not receives the message. >>> connection_id = > UserConnection.objects.get(user_id=user_id).connection_id > >>> send_to_connection(connection_id, {'a':1}) > # returns <coroutine object RedisChannelLayer.group_send at > 0x109576d40> What's the issue in the code? ______________________________________________________________________ This email has been scanned by the Symantec Email Security.cloud service. For more information please contact enterprise-secur...@innovaccer.com ______________________________________________________________________ -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CADxEvOHm4CE7CuchCLXCeg21vy7ifZPq4vuvWs5-uELuFjRUyw%40mail.gmail.com.