На node.js + socket.io реализовать простой чат дело 2-х дней. Причем больше всего времени будет потраченно на клиент: дизайн, верстку, смайлы, подсветка ников, информация о пользователе, звуки и так далее.
Насчет комнат. В socket.io они уже
реализованны.
По поводу безопасности. Чат сервер по сути является echo сервером. Он просто пробрасывает сообщения от клиента к клиентам. Ему не обязательно знать содержание сообщений. Поэтому для безопасности в большенстве случаев хватает
авторизации на сервере и чистки пришедших данных на клиенте простой функцией:
function htmlEscape(text) {
return text.replace(/&/g, '&').
replace(/</g, '<').
replace(/"/g, '"').
replace(/'/g, ''');
}
Простую реализацию чата можете посмотреть
тут.