Node js - Создание постоянных приватных чатов - PullRequest
5 голосов
/ 11 апреля 2011

В последнее время я так много читал о боевом узле, и возможности чата кажутся очень хорошими. Однако единственные примеры чата, которые я видел, в основном транслировали сервер чата по фиксированному URL-адресу (например, в комнате собраний). Можно ли частично использовать узел js для создания клиента чата, более похожего на gchat? - где окно чата всплывает на текущей странице, а затем сохраняется на нескольких страницах. Кто-нибудь видел пример этого?

Если нет, предложения по другим технологиям, которые можно использовать для этой цели (я знаю, что на другие вопросы ответили)?

Спасибо.

Ответы [ 2 ]

6 голосов
/ 11 апреля 2011

Я дам вам псевдо-реализацию, опирающуюся на jquery и сейчас , чтобы абстрагироваться от утомительного ввода-вывода и утомительной манипуляции 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 голос
/ 29 июля 2011

Взгляните на AjaxIM: https://github.com/freq32/AjaxIM

Это приложение для чата в стиле Facebook (список друзей, небольшая постоянная панель чата в нижней части экрана, всплывающие чаты) на основе nodejs.

...