你的位置:首页 > Java教程

[Java教程]Node聊天程序实例03:chat.js


作者: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

否则,返回错误信息。