【问题标题】:Ajax Chat long pollingAjax Chat 长轮询
【发布时间】:2012-08-16 04:33:58
【问题描述】:

看完this post,我决定自己写一个聊天应用。

与上面的帖子不同,我的应用程序允许更多轮询,例如当用户按下任意键时(以通知另一个用户 1 正在写东西),显然当用户发送消息时。

这会导致一些问题:通常没有一个通知被正确读取,并且发送的消息并不总是从另一端读取。

如果有某种方式可以发送和接收不同类型的通知(消息、关于新写作的提醒、新用户加入等...),那就太好了。

我该如何解决这个问题?

【问题讨论】:

  • 看看“神奇的 SignalR”signalr.net
  • 我想在不使用第三方解决方案的情况下实现我的自定义库..
  • 实现这一切需要大量的工作,而且绝对不是一个 StackOverflow 答案所能容纳的。所以使用 SignalR。如果您不想使用它并重新发明轮子,那么请开始重新发明它们,但在这里只询问有关您的实施的非常具体的问题,而不是仅仅询问如何编写聊天应用程序,因为这没有任何意义。
  • XMPP 是一种协议,旨在完全按照您的要求进行操作。我建议考虑使用像Strophe 这样的库在它之上构建。正如 Darin 所说,如果您真的想从头开始构建它,那么您的问题范围对于单个 StackOverflow 问题来说太大了。

标签: c# asp.net ajax wcf


【解决方案1】:

Signal R 是您问题的解决方案。我了解您想开发自己的解决方案,并且阴谋可能很诱人,但请考虑研究 SignalR - 能够掌握和操纵 SignalR 将带来好处,并让您更轻松地解决类似问题 - 它是添加到您的开发库中的绝佳工具。

事实上,无论如何继续开发您的解决方案,但让 SignalR 一次性完成其他项目或其他项目,作为在 .net 中实现此类客户端服务器通信的事实上的方法,它确实值得一看。可以使用下面的链接在 NuGet 上找到它,因此只需点击几下!

http://nuget.org/packages/SignalR

【讨论】:

    【解决方案2】:

    很高兴地通知您,我的聊天应用程序现在正在运行。

    问题是关于在同一个 javascript 事件处理程序中两次调用 wcf 服务(发送消息按钮,我在其中通知了新消息和警报,例如“用户没有写任何东西”,是的,我需要重置以前的警报(“用户正在写消息..”)。

    现在我可以发送和接收许多通知并且一切正常。我已经用 10 个聊天页面对其进行了测试。

    当然,我知道通过使用您建议我的框架,我可以实现更多的功能和稳定性,但我很高兴找到了一个相对简单、可定制且良好的解决方案。

    【讨论】:

      猜你喜欢
      • 2012-02-24
      • 2011-04-20
      • 2012-05-17
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 2012-07-07
      • 1970-01-01
      相关资源
      最近更新 更多