今天,我們的目標是使用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
新聞熱點
疑難解答