Node聊天程序实例03:chat.js
2024-10-13 21:17:42
作者:vousiu
出处:http://www.cnblogs.com/vousiu
本实例参考自Mike Cantelon等人的《Node.js in Action》一书。
chat.js
这个程序在客户端浏览器运行。
定义一个Chat类,给定一个socket,它可以往这个socket发送事件。
var Chat = function(socket) { this.socket = socket; }
指定socket。
Chat.prototype.sendMessage = function(room, text) { var message = { room: room, text: text }; this.socket.emit('message', message); };
定义sendMessage成员。
{room: 'roomName', text: 'text'} <---------- 'message' ----------- chat
Chat.prototype.changeRoom = function(room) { this.socket.emit('join', { newRoom: room }); };
定义changeRoom成员。
{newRoom:'roomName'} <------- 'join' -------- chat
Chat.prototype.processCommand = function(command) { var words = command.split(' '); var command = words[0].substring(1, words[0].length).toLowerCase(); var message = false; switch(command) { case 'join': words.shift(); var room = words.join(' '); this.changeRoom(room); break; case 'nick': words.shift(); var name = words.join(' '); this.socket.emit('nameAttempt', name); break; default: message = 'Unknown command'; break; } return message; };
定义处理命令成员。
若命令为join,则changeRoom;
若命令为nick,则name <------- 'nameAttempt' -------- chat
否则,返回错误信息。
最新文章
- Windows下Nginx Virtual Host多站点配置详解
- testng 教程
- 使用automake等命令自动生成Makefile文件 (转载)
- uva oj 567 - Risk(Floyd算法)
- [ROS]3 Linux编程练习
- X86平台下嵌入式linux触摸屏解决方案(usb触摸屏控制器+完美校准方案+触摸屏QTE开发环境搭建)
- Windows API 的数据类型与 Delphi 数据类型对照表
- 【JS】Intermediate3:AJAX
- JMS &; ActiveMQ小结
- JqMobi学习
- rac 中节点的vip在该节点启动不了,在其它节点正常启动。
- ecshop加入购物车效果(各个页面)
- react中PureComponent浅对比策略
- 容器虚拟网卡与网桥docker0虚拟网卡的veth pair的配对
- 推荐一个免费的在线IDE和终端
- 剖析ElasticSearch核心概念,NRT,索引,分片,副本等
- python note 10 函数变量
- 对mysql 单表备份
- js或jsp 获取项目路径常用方法
- egret -纹理集的制作