今天,我们的目标是使用Django,Redis,和Socket.IO建立一个实时的聊天室。虽然几乎所有的Web应用程序都可以建立一个聊天室的。这篇文章将以较高的水平告诉你如何将基于REST的应用程序转换成一个实时的Web应用程序的。我会使用Django创建REST的部分,实际上自由地使用任何你舒服的语言/框架均可。接下来,让我们跳进代码,先列举我们所需要的部分。
组成:
Django 1.4+ Redis 2.6.x (版本可选,但是建议使用) Redis-py 2.7.x (仅当你使用Redis时需要) Node.js v0.8.x Socket.IO v0.9.x Cookie v0.0.5 数据库、sqlite、其他你觉得类似数据库形式的 均可
你的使用的版本可能与我不同,我暂时未测试其他版本,全部使用当前最新稳定版本。如果你无法通过下面方法安装,我已经编译好Ubuntu的软件包。你可以从评论中得到其他操作系统版本情况。
#https://docs.djangoproject.com/en/dev/topics/install/sudo apt-get install python-pipsudo pip install django #http://redis.io/downloadsudo apt-get install redis-server #https://github.com/andymccurdy/redis-pysudo pip install redis #https://github.com/joyent/node/wiki/Installing-Node.js-via-package-managersudo apt-get install python-software-propertiessudo add-apt-repository ppa:chris-lea/node.jssudo apt-get updatesudo apt-get install nodejs #https://github.com/LearnBoost/socket.ionpm install socket.io #https://github.com/shtylman/node-cookienpm install cookie
让我们从Django Project开始
django-admin.py startproject realtime_tutorial && cd realtime_tutorialpython manage.py startapp coremkdir nodejs
执行完以上的代码,django project就配置好了,接下来要做的是在settings文件中设置数据库。先创建一个空白数据库。(这是一个settings file的例子。在我的app中添加了一个“core”然后配置templates和urls的路径。你可以随意更改settings中的配置信息,但是要与你的app相对应。
Model
models很简单,我们将要建一个包含user和text的表。如果你想让他更复杂一些,可以添加chatroom等信息。(为了简单起见,这里只写了两个)
from django.db import modelsfrom django.contrib.auth.models import User class Comments(models.Model): user = models.ForeignKey(User) text = models.CharField(max_length=255)
这就是我们将要使用的model,接下来执行下面的syncdb代码(第一行代码),创建数据库。然后创建几个user来测试。(第二行代码)
python manage.py syncdbpython manage.py createsuperuser Node Server With Socket.IO
新闻热点
疑难解答