我有一个Django项目/网站,其中包含3个聊天应用程序,其中两个使用HTTp请求作为聊天机器人使用views.py从DataBase中检索重放,第三个是使用Django通道和websockets作为正常的基本one-to0one聊天应用程序,连接和回显消息工作完美但问题是,当我尝试使用consumer.py中的Group()函数发送消息时,它不起作用。
所以,我发现原因是我的websocket应用程序在与我的mod_wsgi应用程序一起运行时似乎没有正确路由。 因此,唯一的解决方案是停止我的Apache,然后通过runserver命令从websockets端口提供整个应用程序。 当我这样做时,Group()工作,但问题是我使用Apache开发整个网站,它在我的Django网站中提供3个应用程序中的2个,第3个使用网络套接字(这花了我很长时间)。我的Django项目中需要Apache和websockets。
这是我的Apache配置:
ServerRoot "/home/mansard/webapps/gadgetron/apache2"
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule wsgi_module modules/mod_wsgi.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /home/mansard/logs/user/access_gadgetron.log combined
ErrorLog /home/mansard/logs/user/error_gadgetron.log
Listen 16709
KeepAlive Off
SetEnvIf X-Forwarded-SSL on HTTPS=1
ServerLimit 1
StartServers 1
MaxRequestWorkers 5
MinSpareThreads 1
MaxSpareThreads 3
ThreadsPerChild 5
Header set Access-Control-Allow-Origin: *
Header set Access-Control-Allow-Headers: content-type
Header set Access-Control-Allow-Methods: *
WSGIDaemonProcess gadgetron processes=2 threads=12 python-path=/home/mansard/webapps/gadgetron:/home/mansard/webapps/gadgetron/src:/home/mansard/webapps/gadgetron/lib/python3.5
WSGIProcessGroup gadgetron
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /home/mansard/webapps/gadgetron/src/chatbot/wsgi.py process-group=gadgetron application-group=%{GLOBAL}
如何解决此问题?
PS:有人告诉我,我需要切换到Nginx作为我的网站配置(如何才能实现?)