Готовлю websoketa для django 3.1. Использую рецепт:
https://alex-oleshkevich.medium.com/websockets-in-.... И прям все понятно, но что-то не работает. Валится по ошибке:
Traceback (most recent call last):
File "C:\Python\3.8\lib\wsgiref\handlers.py", line 137, in run
self.result = application(self.environ, self.start_response)
File "C:\Python\ENV\myapp\lib\site-packages\django\contrib\staticfiles\handlers.py", line 76, in __call__
return self.application(environ, start_response)
TypeError: wsgi() missing 1 required positional argument: 'send'
И что за 'send' и откуда его взять -- не понимаю. Правда, т.к. разработка ведётся в PyCharm под Windows, то запускаю не через
asgi.py, а через
wsgi.py... (не доступны сторонние серверы приложений, типа
unicorn под виндой), Пробовал использовать
waitress (обёртку поверх wsgi) -- эффект тот-же:
TypeError: wsgi() missing 1 required positional argument: 'send'
Waitress готовлю так: рядом с
manage.py, создаю
server.py:
from waitress import serve
from myapp.wsgi import application
if __name__ == '__main__':
serve(application, port='5678')
Запускаю
$ python server.py
или
waitress-serve --port=5678 myapp.wsgi:application
-- та же ошибка с аргументом 'send'...
P.S. Я знаю про
channels и
django-websocket. Но они тоже требуют
asgi. Буду рад, если подскажете другие рецепты. Слушать websoket не нужно. Только "говорить. Главное, чтоб можно было использовать и тестить в dev под Windows (и желательно не покидая PyCharm)