SimpleWebSocketServer与django和apache的集成



我使用django和apache的mod_wsgi。
我正在尝试这个模块:https://github.com/opiate/SimpleWebSocketServer基本上,我试图集成websocket服务器与我的django应用程序,所以我可以共享变量,并与两个服务器做数据库查询。

这是我使用这个库的代码:
myserver.py :

from SimpleWebSocketServer import WebSocket, SimpleWebSocketServer
import thread
class socket(WebSocket):
    def handleMessage(self):
        if self.data is None:
            self.data = ''
        print self.data
        # echo message back to client
        self.sendMessage(str(self.data))
    def handleConnected(self):
        print self.address, 'connected'
        #print self.request
        #print self.server.connections
    def handleClose(self):
        print self.address, 'closed'
server = SimpleWebSocketServer('',8001,socket)
#server.serveforever()
thread.start_new_thread(server.serveforever,())
print "done"

我使用thread,所以它不会阻塞其余的代码。
如果我单独运行这段代码,并在浏览器中创建一个webSocket:

javascript

:

var socket;
function startSocket(){
    socket= new WebSocket("ws://localhost:8001");
    socket.onopen= function(evt) {test.innerHTML+="connectedn";};
    socket.onclose = function(evt) {test.innerHTML+="disconnectedn"};
    socket.onmessage = function(evt) { alert(evt.data);};
    socket.onerror = function(evt) {alert("error");};
}
startSocket();

一切正常。问题是如何在我的django代码集成它。所以我把myserver.py的代码放在我的项目的__init__.py文件中。我已经创建了一个WEB_SOCKET设置,并将SimpleWebSocket实例分配给它。它确实创建了对象(我已经在调试模式下检查了),但仍然没有事件,没有连接,没有任何东西。这行不通。为什么?
也许这个问题还有别的解决办法?我需要一些容易和简单的东西,像这个模块,它必须能够与django集成。

您只需要将项目的位置添加到python路径中,以便您可以在操作系统中进行设置。

import sys,os
sys.path.append('path_to_my_dango_project')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
from app.models import *
...
obj=Model()
..
obj.save()

相关内容

  • 没有找到相关文章

最新更新