Каким рекомендациям и стандартам я должен следовать при внедрении службы чата? - PullRequest
0 голосов
/ 18 июля 2011

Я создаю функцию чата на веб-сайте, что-то наподобие чата stackoverflow, но проще, есть ли рекомендации или стандарты, которым я должен следовать при создании этой функции с использованием MVC .net и javascript? Есть ли какие-нибудь статьи, документы или книги, о которых подробно говорится?

Ответы [ 3 ]

3 голосов
/ 20 июля 2011

Отказ от ответственности: я ни в коем случае не эксперт, но я сделаю все возможное.Если кто-то думает, что это будет лучше служить вики-сообществом, я изменю его на такое, просто дайте мне знать.

На мой взгляд, есть две основные области служб чата:

Чаты (например, IRC)

  • Требуется какая-то иерархия модерации
  • Несколько меньше потребность в конфиденциальности при общении
    • как примечание: выВозможно, вы захотите иметь как частные, так и публичные чаты, в этом случае конфиденциальность может стать проблемой
  • Минимальная потребность в регистрации пользователя
    • Единственные причины, по которым вы можетенужна регистрация пользователя в этом случае по соображениям модерации или конфиденциальности
    • Как это часто делается в сетях IRC, я бы сделал регистрацию пользователей необязательной

One-Чат on-One (например, XMPP)

  • Обычно требуется шифрование со всех сторон
  • Приватность - это ключ
  • Аутентификация очень важна (Если вы не общаетесь в чате-рулетка типа вещь)
  • Модерации нужныминимальный
    • О единственных инструментах модерации, которые вам нужны, - это что-то для предотвращения спама (что можно решить, просто не раскрывая списки пользователей и требуя, чтобы пользователи одобрили кого-то до того, как этот человек сможет с ним общаться), ичто-то, что позволяет пользователям блокировать других пользователей

Хорошо, теперь, когда мы выяснили, какой тип сервиса вы хотите реализовать, мы должны выяснить,«как».

Существующие стандарты

  • Существует много кода, но ...
  • Как правило, стандарты сложнее, чем то, что вы
    • Явным исключением здесь является IRC, который очень прост для понимания, хотя на самом деле может не хватать функций для того, что вы хотите сделать
    • Может содержать дополнительные вещи, которыевас это не волнует (например, передача файлов в XMPP)
      • Это не значит, что вы на самом деле должны их поддерживать, но это больше страниц документов rfc, которые выo просмотреть

Прокручивание собственного протокола

  • Потенциально небезопасно, так как вы можете не знать, на что обращать внимание
  • Потенциально более низкие первоначальные затраты, более высокие долгосрочные расходы
    • Под этим я подразумеваю просто то, что когда вы катите это самостоятельно, вы экономите время, необходимое для просмотра множествастандартов, но в результате вы можете создать менее надежную систему, чем вы надеялись
  • Более легко настраиваемые для ваших нужд (при условии, что вы ничего не перепутаете, см. предыдущий пункт)

Некоторые другие шансы

  • Возможно, вы захотите сделать ботов
    • Будьте осторожны, открывая API для другихчтобы сделать ботов, хотя.Это может быть хорошо или плохо, в зависимости от вашего сообщества.Люди могут использовать его для спама или для больших вещей. С большой силой приходит большая ответственность.
  • Возможно объединить как систему чата, так и чат один на один.IRC поддерживает индивидуальные чаты, а XMPP поддерживает чаты.
2 голосов
/ 22 июля 2011

Node.js - это то, что вы должны рассмотреть для сервера службы чата.

Вот почему:

  • это невероятно быстро
  • легко настроить
  • вы можете использовать веб-сокеты (совместимо с Safari, IOSSafari, Chrome, Firefox, Opera), чтобы заставить вещи работать супер бегло и быстро
1 голос
/ 18 июля 2011

Я бы определенно взглянул на XMPP. Уже имеется множество серверов XMPP, таких как Tigase (Java), Ejabberd (Erlang) и т. Д., Которые помогут вам быстро начать работу.

Существует спецификация XMPP для многопользовательских чатов (MUC) http://xmpp.org/extensions/xep-0045.html, которую реализовали и Tigase, и Ejabberd.

Существует библиотека JavaScript для XMPP под названием Strophe (http://strophe.im/strophejs/), которая также может показаться вам интересной. Strophe также использовался для написания Speeqe (https://github.com/thepug/speeqe). (Демо: www.speeqe. ком)

Поскольку XMPP существует уже очень давно (раньше его называли Jabber), существует множество замечательных книг, в том числе одна, в которой говорится об использовании Strophe (http://www.amazon.com/Professional-Programming-JavaScript-jQuery-Programmer/dp/0470540710 - написано создателем ChessPark)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...