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 [email protected]
______________________________________________________________________

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CADxEvOHm4CE7CuchCLXCeg21vy7ifZPq4vuvWs5-uELuFjRUyw%40mail.gmail.com.

Reply via email to