Этот проект устарел. Была выпущена новая и улучшенная версия:
https://github.com/bearle/django_private_chat2
Пожалуйста, проверьте это.
Пожалуйста, также ознакомьтесь с нашим еще одним пакетом https://github.com/bearle/django_mail_admin
Django One-To-One WebSocket на основе асинсио-вранга, разработанный Bearle Team

В этом приложении используется отдельная команда управления, RUN_CHAT_SERVER для запуска веб -сайтов в контексте Django. Он предназначен для использования с чем -то вроде руководителя или Systemd для запуска Asyncio Webserver как отдельный от Django. Мы не хотели, чтобы наше приложение ограничивалось для того, чтобы использовать вместе с каналами Django - поэтому мы сделали это так.
Вы можете найти пример SystemD Config для ее запуска в качестве службы по адресу https://github.com/bearle/django-private-chat/blob/dev/example.service
PS Не забудьте изменить CHAT_WS_SERVER_HOST && CHAT_WS_SERVER_PORT && CHAT_WS_SERVER_PROTOCOL SETROWS!
Полная документация (наконец) на https://django-private-chat.readthedocs.io. Вы также можете проверить DocStrings & This Readme.
Вы можете проверить наш пример проекта, клонируя репо и перейдя в пример/ каталог. Есть файл Readme для проверки, начальные данные, чтобы проверить включенный чат.
Как настроить шаблон? Просто копируйте:
venv/lib/pythonx.x/site-packages/django_private_chat/templates/django_private_chat/dialogs.html к yourapp/templates/django_private_chat/dialogs.html
И не стесняйтесь редактировать его, как вам нравится! Мы намеренно оставили код JS внутри, чтобы он был легко редактирован.
Установите django-private-chat:
PIP Установите Django-Private Chat
Мигрировать:
Python Manage.py Migrate django_private_chat
Примечание. Вы можете использовать этот пакет с или без UVLoop, просто запустите либо
python manage . py run_chat_serverили бежать
python manage . py run_chat_server_uvloopДобавьте его в свой insted_apps:
INSTALLED_APPS = (
...
'django_private_chat' ,
...
)Добавьте сервер и порт для вашего сервера Asyncio в настройки:
CHAT_WS_SERVER_HOST = 'localhost'
CHAT_WS_SERVER_PORT = 5002
CHAT_WS_SERVER_PROTOCOL = 'ws'Можно изменить формат сообщений DateTime, используя
DATETIME_FORMATДобавьте узоры URL-адреса Django-Private Chat:
from django_private_chat import urls as django_private_chat_urls
urlpatterns = [
...
url ( r'^' , include ( 'django_private_chat.urls' )),
...
]Добавлять
{ % block extra_js % }{ % endblock extra_js % }к вашему базовому шаблону
Теперь вы можете начать диалог, используя
/dialogs/some_existing_username
Вместо этого создать сервер WSS (TLS):
python manage . py run_chat_server "path/to/cert.pem"(Также работает с UVLOOP). Файл "cert.pem" должен быть опубликованным файлом PEM, содержащим сначала закрытый ключ, а затем сертификат (может быть объединением файла .Key и .crt). Обратите внимание, что WSS будет использовать TLSV1 по умолчанию для Python 3.5 и 3.4 и будет использовать ssl.protocol_tls_server для 3.6 и выше. Функции --------
-:: white_check_mark: использует текущую модель приложения (get_user_model () и settings.auth_user_model)
-: white_check_mark: translatable (использует UgetText и { % trans %})
-: White_check_mark: чат пользователя один на один
-: white_check_mark: работает с использованием веб -билетов
-:: white_check_mark: работает (необязательно), используя соединения WSS (TLS) (Отказ от ответственности - безопасность не гарантирована)
-: White_check_mark: отображает онлайн/статус офлайн
-:: white_check_mark: отображение типирования/не набрать статус
-:: White_check_mark: мягкая модель Deletable Message -Обязательно сохраните сообщения, чтобы соответствовать законам об обслуживании сообщений
-: white_check_mark: Flash кнопка диалога, когда пользователь, с которым вы сейчас не разговариваете, написал вам сообщение
-: point_right: todo: добавьте диалог в список, когда новый начался
-: point_right: todo: добавить пользователя-не ввод и другие оповещения
-: point_right: возможное интерпретация бэкэнд Redis
На самом деле код работает?
Source <YourVirtualEnv>/bin/activate (myenv) $ pip установка Tox (myenv) $ tox
Инструменты, используемые для рендеринга этого пакета: