コード例 #1
0
async def test_send_message(url, client):
    user = baker.make(models.USER_MODEL)
    client.force_login(user)
    request = client.get(url).wsgi_request
    session = request.session

    communicator = WebsocketCommunicator(ChatConsumer.as_asgi(), url)
    communicator.scope['session'] = session

    chat = baker.make(models.CHAT_MODEL)
    # Setup
    data = {
        'type': 'setup_channel_layer',
        'chat': chat.pk,
        'session_key': session.session_key,
    }
    await communicator.send_json_to(data)

    word = fake.word()
    data = {
        'type': 'send_message',
        'chat': chat.pk,
        'message': word,
    }
    await communicator.send_json_to(data)
    response = await communicator.receive_json_from()
    message = response['message']

    assert word == message['message']
    assert chat.pk == message['chat']

    assert ChatMessage.objects.get(pk=message['id'])

    # Disconnect
    await communicator.disconnect()
コード例 #2
0
async def test_setup_channel_layer(url):
    communicator = WebsocketCommunicator(ChatConsumer.as_asgi(), url)

    chat = baker.make(models.CHAT_MODEL)
    data = {
        'type': 'setup_channel_layer',
        'chat': chat.pk,
    }
    await communicator.send_json_to(data)

    # Disconnect communicator
    await communicator.disconnect()
コード例 #3
0
async def test_send_message_without_setup(url, client):
    user = baker.make(models.USER_MODEL)
    client.force_login(user)
    request = client.get(url).wsgi_request

    communicator = WebsocketCommunicator(ChatConsumer.as_asgi(), url)
    communicator.scope['session'] = request.session

    chat = baker.make(models.CHAT_MODEL)
    data = {
        'type': 'send_message',
        'chat': chat.pk,
        'message': fake.word(),
    }
    await communicator.send_json_to(data)
    response = await communicator.receive_json_from()

    assert 'error' in response

    # Disconnect
    await communicator.disconnect()
コード例 #4
0
ファイル: routing.py プロジェクト: nikitko43/memo
from channels.sessions import SessionMiddlewareStack
from django.conf.urls import url, re_path
from channels.routing import ProtocolTypeRouter, URLRouter, ChannelNameRouter
from channels.auth import AuthMiddlewareStack
from channels.security.websocket import AllowedHostsOriginValidator, OriginValidator

from chat.consumers import ChatConsumer, TaskConsumer
from render.consumers import RenderConsumer, ServerConsumer
from sketchbook.consumers import SketchbookConsumer

application = ProtocolTypeRouter({
    # Websocket chat handler
    'websocket':
        AllowedHostsOriginValidator(
            AuthMiddlewareStack(
                URLRouter(
                    [
                        re_path(r"^messages/(?P<username>[\w.@+-]+)$", ChatConsumer(), name='chat'),
                        re_path(r"^api/render/$", RenderConsumer(), name='render'),
                        re_path(r"^server_info$", ServerConsumer(), name='server'),
                        re_path(r"^ws/sketchbook/$", SketchbookConsumer().as_asgi(), name='sketchbook'),
                    ]
                )
            ),
        ),
    'channel': ChannelNameRouter({
        'task': TaskConsumer
    })
})
コード例 #5
0
# chat/routing.py
from django.urls import re_path

from chat.consumers import ChatConsumer

websocket_urlpatterns = [
    re_path(r'ws/chat/(?P<room_name>\w+)/$', ChatConsumer.as_asgi()),
]
コード例 #6
0
ファイル: routing.py プロジェクト: jessicahelem/CHATDJANGO
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from django.urls import path

from chat.consumers import ChatConsumer


application = ProtocolTypeRouter({
    'websocket': AuthMiddlewareStack(
        URLRouter([
            path('ws/chat/<slug:chatname>/', ChatConsumer.as_asgi()),
        ])
    ),
})
コード例 #7
0
ファイル: routing.py プロジェクト: shibelgut/marketplace
from django.urls import path
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack

from chat.consumers import ChatConsumer

application = ProtocolTypeRouter({
    'websocket':
    AuthMiddlewareStack(
        URLRouter({
            path('ws/chat/', ChatConsumer.as_asgi(), name='chat'),
        }), ),
})
コード例 #8
0
ファイル: routing.py プロジェクト: yangnibal/oscar-backend
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
from django.urls import path, include, re_path
from django.conf.urls import url
from chat.consumers import ChatConsumer

ws_urlpatterns = [
    re_path(r'^ws/(?P<room_id>\w+)/$', ChatConsumer.as_asgi()),
]

application = ProtocolTypeRouter({
    'websocket': AuthMiddlewareStack(
        URLRouter(
            ws_urlpatterns
        )
    )
})
コード例 #9
0
from django.urls import path

from chat.consumers import ChatConsumer

websocket_urlpatterns = [

    # path(r'^ws/chat/(?P<room_name>[^/]+)/(?P<auth>[^/]+)/$', ChatConsumer)
    path('ws/chat/<int:sender_id>/<int:receiver_id>/', ChatConsumer.as_asgi())
]
コード例 #10
0
from django.urls import path
from . import consumers
from chat.consumers import ChatConsumer

websocket_urlpatterns = [
    path('notifications/',
         consumers.NotificationConsumer().as_asgi()),
    path('ws/chat/<str:room_name>/',
         ChatConsumer().as_asgi()),
]
コード例 #11
0
ファイル: routing.py プロジェクト: cgqabc/SimpleOps
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# from channels.routing import route
from chat.consumers import ChatConsumer  #导入处理函数
from accounts.consumers import UserConsumer

channel_routing = [
    ChatConsumer.as_route(path=r"/chat/",
                          attrs={
                              'group': 'chat',
                              'group_prefix': 'pre'
                          }),
    UserConsumer.as_route(path=r"/user/",
                          attrs={
                              'group': 'users',
                              'group_prefix': 'pre'
                          }),
]