2012-02-19 102 views
1

我试图做一个实时消息应用程序。将有2个不同的服务器(node.js和django),当用户向另一个用户发送消息时,消息将存储在数据库中,而不是node.js将向接收者发送消息,如“您有新消息!”。为此,我打算打电话给哪个node.js服务。所以node.js和django会互相交互。什么是最好的方式发送消息到指定客户端? (我把客户的身份证放在一个合适的列表中。)Django node.js socket.io

你对此有何看法?这是否有效?或者你建议更好的方法来做到这一点?

+0

node.js服务器的用途究竟是什么?为什么你想从django中取出这些功能并将其放到那里? – 2012-02-19 18:08:43

+0

Django的本性不支持与套接字的交互。我知道有名为django-socketio的实现,但我不确定如何使用它。 – Gpost 2012-02-19 19:15:43

+0

你能详细阐述一下你想做什么吗?这是一个基于Web的应用程序吗?如果没有,为什么Django?如果是的话,你指的是什么插座? WebSockets的? – 2012-02-19 19:40:11

回答

-1

现在我对你要做的事情有了更多的了解,在这里,我的回答是,请记住,这只反映了我的观点,我敢打赌,其他人会争论它。

这一切都与您期望在您的应用程序中拥有多少流量有关。如果它不是一个高流量的应用程序,那么与开发相比,运行时间的效率是微不足道的,因此选择您感觉最舒适的技术。

如果你确实瞄准高流量的应用程序,那么我相信这个设置不是很好。 首先,虽然基于http的服务器之间的通信看起来很舒服,但您正在处理http over tcp的开销(因为http基于tcp)。因此,常规的tcp套接字可以更好地扩展,但另一方面,如果你使用python编写套接字服务器,那么你可以从django的相同进程中运行它,然后将它用作django中的对象(你正在进入领域这里的线程)。但是,如果您有几个Web实例,那就很有问题了,这又取决于您期望的流量。

至于实现消息服务器的选择,我从来没有测试过node.js,但我相信在基准测试中它不会比较用erlang或Java NIO编写的东西。例如:JAVA AIO (NIO.2) VS NODEJS