首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何构建支持Web/Client的聊天系统

如何构建支持Web/Client的聊天系统
EN

Stack Overflow用户
提问于 2010-12-03 23:47:49
回答 1查看 1.8K关注 0票数 3

我希望为我们公司的网站之一建立一个在线客户支持系统,并有一些关于结构的查询。

场景是这样的。我们希望我们网站的用户能够点击“实时聊天支持”按钮,在这一点上,他们将得到一个弹出窗口,试图连接到我们的支持团队之一。

另一方面,我们的支持团队将运行桌面客户端。每当我们网站上的用户点击这个链接时,所有的桌面客户端都会“响铃”。每当支持团队成员“应答”呼叫时,其他客户端将停止振铃,该成员将开始与web用户聊天。

考虑到我们的桌面客户端将使用C#.NET中的WPF制作,并且我们的站点是ASP.NET MVC2--在两者之间建立通信的最佳方式是什么?

我最初的想法是让web端将聊天存储在SQL数据库中,然后以某种方式"Ping“相关的桌面客户端,告诉它更新聊天日志。从桌面到web也是如此。但我不确定如何在两个不同的平台之间实现这一点。如果它是桌面客户端到桌面客户端,我想这会容易得多,但事实并非如此。

此外,请记住,我意识到已经有商业应用程序可以做到这一点。然而,我们需要一些定制的功能,超越简单的聊天-这是不值得进入细节,但基本上我们必须实现我们自己的解决方案。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-04 00:19:10

Web技术不是实现实时交互的合适平台。当然,这是可以做到的,但您肯定会遇到可伸缩性、响应性和开发工作方面的问题。我强烈建议您仔细检查您的需求,并考虑是否有可能利用供应商的产品来完成您想要做的事情。

如果你仍然想要自己创业,你必须克服的主要障碍是如何将消息推送到浏览器。使用纯web技术从服务器“using”浏览器是不可能的,因为HTTP是建立在“拉取”请求/响应模型之上的。在服务器中的客户端之间没有维护持久连接。在服务器完成将页面发送到浏览器之后,连接就消失了。

您可以轮询web服务器以获取新消息,但这不是一个可伸缩的解决方案。如果您处理的用户数量非常少(比方说个位数),那么这可能是可行的,但您的响应速度将受到轮询速度的限制,并且轮询速度越快,此解决方案的可扩展性就越差。

更好的解决方案是使用Silverlight、Flash或其他在浏览器中运行的胖客户端技术。然后,您可以实现一个服务来处理客户端之间的消息路由。This article on CodeProject可能是一个很好的起点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4347198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档