节点js - 创建持久的私人聊天室

时间:2011-04-11 12:57:03

标签: ajax node.js livechat

我最近读了很多关于节点的事情,聊天功能看起来非常好。但是,我见过的唯一聊天示例基本上是将聊天服务器广播到固定的URL(如会议室)。是否可以使用节点js来创建更像gchat的聊天客户端? - 在当前页面上弹出聊天窗口,然后在多个页面中保留。有没有人见过这样的例子?

如果没有,建议其他技术用于此目的(我知道其他问题已得到解答)?

感谢。

2 个答案:

答案 0 :(得分:6)

我将依靠jquerynow给你一个伪实现来从解决方案中抽象出繁琐的IO和乏味的DOM操作。

// Server

var nowjs = require('now');
var everyone = nowjs.initialize(httpServer);

everyone.now.joinRoom = function(room) {
    nowjs.getGroup(room).addUser(this.user.clientId);
}

everyone.now.leaveRoom = function(room) {
    nowjs.getGroup(room).removeUser(this.user.clientId);
}

everyone.now.messageRoom = function(room, message) {
    nowjs.getGroup(room).now.message(message);
}

// Client

var currRoom = "";

$(".join").click(function() {
    currRoom = ...
    now.joinRoom(currRoom);
});

$(".send").click(function() {
    var input = ...
    now.messageRoom(currRoom, input.text());
});

now.messageRoom = function(message) {
    $("messages").append($("<div></div>").text(message));
};

我只是注意到我自己的新版本的nowjs(0.5)在构建中有组系统。这基本上可以满足您的需求。没有麻烦。

如果需要,可以删除nowjs依赖项并将其替换为100/200行代码。我将把它作为用户的练习。

答案 1 :(得分:1)

看看AjaxIM:https://github.com/freq32/AjaxIM

这是一个基于nodejs的facebook风格的聊天应用程序(想想朋友列表,屏幕底部的小持久聊天栏,弹出聊天)。