技术要点:
1)安装与使用channels及其依赖的软件和扩展库;
2)使用channels实现WebSocket;
3)使用WebSocket实现在线聊天室;
4)检测用户是否登录;
5)异步编程,相关基础知识可以参考《Python程序设计开发宝典》;
5)设置黑名单。
=====================
1、进入cmd模式,执行命令pip install channels,安装channels以及相应的依赖库,在这个过程中,twisted库很容易出问题,所以,先到https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted下载轮子文件放到Python安装目录的scripts文件夹中,执行pip命令离线安装twisted库,然后再安装channels。
2、下载并安装Redis,地址:https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi,在安装过程中注意把Redis安装路径添加到环境变量PATH中,并保持默认端口6379不变。
3、安装扩展库channels_redis及其依赖库。
4、新建应用apps\ws\chatroom及其相应的文件,文件夹结构如下
5、修改网站项目的settings.py,增加channels和chatroom应用。
6、修改网站项目的settings.py,配置ASGI_APPLICATION和CHANNEL_LAYERS。
7、执行manage.py命令,更新数据库
8、在网站项目下创建文件routing.py,内容如图所示
9、创建模板文件apps\ws\chatroom\templates\chatroom\index.html,内容如图所示
10、创建模板文件apps\ws\chatroom\templates\chatroom\room.html,内容如下
11、修改文件apps\ws\chatroom\models.py,定义聊天模型,内容如下
12、修改文件apps\ws\chatroom\admin.py,内容如下,使得后台管理员登录之后可以看到聊天室的聊天记录。
13、修改apps\ws\chatroom\urls.py文件内容如下
14、修改apps\ws\chatroom\views.py文件,内容如下
15、修改apps\ws\chatroom\routing.py文件,内容如下
16、修改apps\ws\chatroom\consumers.py文件,内容如下
17、在PyCharm中运行网站,界面如下,注意红线处和之前课程中运行界面的不同。
19、进入聊天室主界面http://127.0.0.1:8000/chatroom/
20、未登录用户的聊天界面
21、黑名单用户的聊天界面
22、打开两个不同的浏览器,使用不同的用户身份登录,然后聊天,界面如下