2012-01-18 3 views
2

Возможно ли создать небольшую (менее 100 пользователей) чат-систему с помощью javascript и html. Он должен работать последовательно в браузере и хранить все чаты в базе данных на сервере? Теперь, если это возможно, каковы были бы его достоинства и недостатки, сравнивая их с другим традиционным чат-клиентом.Создание системы чата с Javascript

+5

Да, это возможно. Gmail уже делает это. –

+1

@Diodeus: этот сайт также предоставляет один или посмотрите на http://www.cometchat.com/ –

+3

Достоинства и недостатки похожи на достоинства других настольных и веб-приложений. –

ответ

6

Да/Нет.

Вы можете реализовать систему чата с помощью JavaScript и только HTML, используя один из трех вещей

  • P2P кросс-браузер связи (работает только в опере)
  • CORS/удаленный сервер JSONP ретранслировать сообщения чата (требует служба третья сторона)
  • свой собственный сервер для передачи сообщений чата

Обратите внимание, что сообщения чата могут быть сохранены локально, поэтому вам нужно только расслабиться сервер. Однако, если вы хотите получать сообщения, находясь в автономном режиме, вам понадобится умный механизм хранения P2P или сообщения, хранящиеся на сервере.

отметить также, что ваш сервер может работать JavaScript (с помощью Node.js)

Также обратите внимание, что система чата без CSS является плохим пользовательским опытом.

+2

Ваше окончательное предложение рода отвлекает/отвлекает вас от вашего общего хорошего ответа. – Kzqai

+0

Немного смешное, возможно, но все же действительное. – Polyducks

0

Это на самом деле не отвечает на ваш вопрос, но взгляните на www.chatjs.net. это может помочь вам.

+0

Но не отвечают _supposed_, чтобы ответить на вопрос OP? :-) – Mac

2

Это вполне возможно, и довольно просто, кстати!

Использование Socket.io вместе с node.js ... демо Socket.io, что не удивительно, чат: http://socket.io/get-started/chat/

Socket.io имеет клиентскую библиотеку, что делает его очень легко добавлять в реальном масштабе время на ваш сайт. Следуйте предыдущему началу, чтобы узнать больше.

Теперь все, что осталось, это сохранить сообщения на сервере. У вас есть много способов сделать это ... У Microsoft есть пример, созданный с использованием их очень быстрого хранилища таблиц (своего рода база данных NoSQL): http://azure.microsoft.com/en-us/documentation/articles/storage-nodejs-use-table-storage-web-site/

Существует несколько пакетов node.js для подключения к популярным реляционным базам данных : https://www.npmjs.org/package/mssql (Microsoft SQL Server), http://azure.microsoft.com/en-us/documentation/articles/sql-database-nodejs-how-to-use/ (база данных Sql в Microsoft AZURE), http://nodejsdb.org/ (MySQL и Drizzle) и многие другие. Я еще не использовал их!

Что касается достоинств и недостатков, я действительно считаю, что node.js + socket.io - это, пожалуй, самая лучшая технология, которую можно использовать для обмена в реальном времени, включая чат-сервер и клиент. Но для общения в чате вы также должны рассмотреть XMPP, который является несколько стандартным протоколом сортировки для общения в чате, и есть уже свободные и открытые серверы и клиенты, а также есть хорошие серверы XMPP для node.js.

Имейте в виду, что Google прекратил использование XMPP в пользу пользовательской реализации, а Whatsapp использует настроенный сервер XMPP, поэтому не так уж редко можно отклоняться от «нормы» ... Используйте то, что лучше для вашей проблемы , Если ваше требование - простой клиент и сервер чата, возможно, лучше всего написать протокол чата только с необходимыми функциями (это то, что я сделал, поскольку мои требования к чату были очень конкретными, но простыми ... было бы сложнее настроить/настроить сервер XMPP, чтобы делать то, что мне нужно).

Что касается недостатков, я действительно не думаю, что они есть, если вы используете надлежащие инструменты. Вы можете создать клиент чата HTML 5 как невероятный, как любой настольный клиент там с текущими браузерами.