在实施聊天服务时我应该遵循哪些最佳做法和标准?

时间:2011-07-18 02:31:16

标签: javascript jquery web-services model-view-controller

我正在网站内构建一个聊天功能,比如stackoverflow聊天但更简单,在使用MVC .net和javascript创建此功能时,是否需要遵循任何最佳实践或标准?是否有任何文章文件或书籍详细讨论过这个问题?

3 个答案:

答案 0 :(得分:3)

免责声明:我绝不是专家,但我会尽我所能。如果有人认为这样可以更好地充当社区维基,我会将其改为,只是让我知道。

正如我所看到的,聊天服务有两个常规领域:

聊天室(与IRC一样)

  • 需要某种审核层次结构
  • 在通信中对隐私的需求稍微少一些
    • 作为注释:您可能希望拥有私人和公共聊天室, 在这种情况下,隐私可能会成为一个更大的问题
  • 最少需要用户注册
    • 在这种情况下,您可能需要用户注册的唯一原因是 审核或隐私原因
    • 通常在IRC网络上完成,我会进行用户注册 可选的

一对一聊天(与XMPP一样)

  • 通常需要加密各方
  • 隐私是关键
  • 身份验证非常重要(除非您正在进行聊天轮盘赌 类型的东西)
  • 审核需求微乎其微
    • 关于您需要的唯一审核工具是可以预防的 垃圾邮件(可以通过简单地不泄露用户列表来解决) 要求用户在该人可以聊天之前批准某人 与他们),以及允许用户阻止其他用户的东西

好的,现在我们已经找到了你想要的服务类型 实施,我们必须弄清楚“如何”。

预先存在的标准

  • 那里有很多代码,但是......
  • 通常,标准比您可以滚动的标准更复杂 你自己
    • 这里明显的例外是IRC,它简单易懂 明白,虽然可能实际上有点缺乏功能 为了你想做什么
    • 可能包含您不关心的额外内容(例如文件传输 在XMPP中)
      • 这并不意味着你实际上必须支持它们,但这是更多的页面 您需要查看的rfc文件

滚动自己的协议

  • 可能不安全,因为您可能不知道该注意什么
  • 潜在降低前期成本,提高长期成本
    • 我的意思是,当你自己滚动时,你可以保存 是时候看一堆标准,但结果就是你 最终可能会构建一个比你希望的不那么强大的系统
  • 更容易根据您的需求进行定制(授予您不会搞砸的事情, 见前一点)

其他一些赔率和结束

  • 您可能想制作机器人
    • 要小心为其他人打开API以制作机器人。这个 可能是好的还是坏的,取决于您的社区。人们可以使用它 垃圾邮件或伟大的东西。 强大的力量带来了巨大的责任。
  • 可以将聊天室系统和一对一聊天结合起来。 IRC 支持一对一聊天,XMPP支持聊天室。

答案 1 :(得分:2)

Node.js是您应该为聊天服务服务器考虑的事情。

这就是原因:

  • 这是荒谬的快
  • 易于设置
  • 你可以使用websockets(兼容safari,ios safari,chrome,firefox,opera),让你的工作变得更加流畅和快速

答案 2 :(得分:1)

我肯定会看看XMPP。有很多XMPP服务器已经可以使用Tigase(Java),Ejabberd(Erlang)等,它们可以帮助您快速上手。

Tigase和Ejabberd已经实施了多用户聊天(MUC)http://xmpp.org/extensions/xep-0045.html的XMPP规范。

有一个名为Strophe(http://strophe.im/strophejs/)的XMPP JavaScript库,您可能会觉得它很有趣。 Strophe也被用来写Speeqe(https://github.com/thepug/speeqe)。 (演示:www.speeqe.com)

由于XMPP已经存在了很长时间(以前称为Jabber),所以还有很多好书,其中包括使用Strophe(http://www.amazon.com/Professional-Programming-JavaScript-jQuery-Programmer/dp/0470540710 - 由ChessPark的创建者编写)的书籍。 p>