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

否则,返回错误信息。

posted @ 2016-06-23 16:04  vousiu  阅读(507)  评论(0编辑  收藏  举报