使用Django/Apache推送服务器

使用Django/Apache推送服务器,django,apache,mod-wsgi,socket.io,server-push,Django,Apache,Mod Wsgi,Socket.io,Server Push,我正在尝试在Django应用程序中使用服务器推送。在我见过的所有不同的解决方案中,它似乎是最容易实现的,我通过manage.py启动服务器时就实现了。然而,当它投入生产时,我希望它通过Apache提供服务。在过去,我已经使用wsgi完成了这项工作,但是django socketio没有很好地使用默认的wsgi脚本。在我的django.wsgi中有什么简单的东西可以让apache做正确的事情吗?如果没有,建议的处理方法是什么 编辑:这里是我通常使用的WSGI脚本(没有任何类型的推送服务器),再加上

我正在尝试在Django应用程序中使用服务器推送。在我见过的所有不同的解决方案中,它似乎是最容易实现的,我通过manage.py启动服务器时就实现了。然而,当它投入生产时,我希望它通过Apache提供服务。在过去,我已经使用wsgi完成了这项工作,但是django socketio没有很好地使用默认的wsgi脚本。在我的django.wsgi中有什么简单的东西可以让apache做正确的事情吗?如果没有,建议的处理方法是什么

编辑:这里是我通常使用的WSGI脚本(没有任何类型的推送服务器),再加上一些解释

import os, sys

locale = os.path.realpath(__file__)
ROOT_DIR = locale[:locale.find('/server/apache/')]

sys.path.append(ROOT_DIR)
sys.path.append(ROOT_DIR+'/server')

os.environ['DJANGO_SETTINGS_MODULE'] = 'server.settings'
os.environ['PYTHON_EGG_CACHE'] = '/var/www/.python-eggs'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

sys.stdout = sys.stderr

sys.stdout=sys.stderr只是将任何测试
print
语句重定向到apache的错误日志中。问题是,当我使用它时,我收到一个错误,抱怨
request.environ
没有键“socketio”或“DJANGO\u socketio\u PORT”。我可以很容易地添加DJANGO_SOCKETIO_PORT(
os.environ['DJANGO_SOCKETIO_PORT']=“9000”
),但从我所知,
request.environ['SOCKETIO']
被设置为DJANGO SOCKETIO内部某个地方的一个
SocketIOProtocol
实例。另外,在查看django socketio添加到manage.py的命令后,我注意到它创建了
SocketIOServer
的一个实例,并在其上调用
serve_forever
,但我不知道在我的代码中放在哪里。希望这能让我更容易看到我要做的事情。

socketio没有很好地使用默认的wsgi脚本
-有什么问题吗?如果没有一些代码,我们怎么能猜出什么是错误的呢?向我们展示脚本并解释问题。您可以使用托管解决方案来消除维护痛苦,并降低在不同运行时环境中发生不同行为的可能性。请参阅:。是Github上的代码,其中DjangoSoCosiTio的Malue.Py命令来自于.@ LeGuter,而其中一些看起来很有趣,我肯定会考虑使用它来做一些其他项目,我认为我将无法访问这个特定项目的任何外部服务器。与其说它是一个网站,不如说它是一个碰巧在浏览器中运行的自定义应用程序。@pastylegs我添加了更多的信息,这个问题现在更有意义了吗?