5

最近看了这么多bout node js,聊天功能看起来很不错。但是,我见过的唯一聊天示例基本上是将聊天服务器广播到固定 URL(如会议室)。是否可以部分使用 node js 来创建更像 gchat 的聊天客户端?- 在当前页面上弹出一个聊天窗口,然后在多个页面中持续存在。有人见过这样的例子吗?

如果没有,建议为此目的使用其他技术(我知道其他问题已经回答)?

谢谢。

4

2 回答 2

6

我会给你一个依赖jquery的伪实现,现在从解决方案中抽象出繁琐的 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 行代码。我将把它留给用户练习。

于 2011-04-11T15:37:03.197 回答
1

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

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

于 2011-07-29T19:14:08.670 回答