c# - Pushlet、长轮询或轮询——我应该在我的聊天应用程序中使用哪一个?

标签 c# delphi chat theory

我必须开发一个多用户聊天应用程序(如 msn)。我不想使用任何框架来构建它,因为我想了解这些东西是如何工作的。

我正在用 Delphi 或 C# 开发它,但这并不重要。重要的是聊天客户端将成为一个应用程序,而不是浏览器。

问题是:处理客户端之间消息的最佳方式是什么?

到目前为止,我知道那些技术:

Pushlet

Polling

Long polling

Link到维基百科

最佳答案

看起来所有这些都对 HTTP 特别有用,因为 HTTP 并不真正允许连接永久打开。如果您正在编写使用 Ajax(或无论如何都是 REST 调用)的基于 Web 的聊天客户端,这就是方法。

如果您自己编写聊天应用程序(P2P 或客户端/服务器),您可以创建一个永久保持打开的连接。

因此,服务器只监听给定的端口。客户端尝试连接到服务器 IP 地址上的那个端口。如果连接成功,它将保持打开状态,直到客户端用户关闭程序(如果一切顺利)。

Delphi 确实有一个使用 Indy TCP 组件的聊天应用程序演示。您可以在那里先睹为快,即使您之后打算自己构建它也是如此。

关于c# - Pushlet、长轮询或轮询——我应该在我的聊天应用程序中使用哪一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8525382/

相关文章:

delphi - 接口(interface)和属性

django - 允许多个用户加入聊天室(使用 Django、Socket.io 和 node.js)

android - 如何在键盘出现时将整个 View 推上去,需要进行哪些布局更改?

c# - 在 WPF 中拖放图像

delphi - 隐藏 Delphi 2009 应用程序中的主窗体

c# - 将服务器端表格内容添加到aspx页面的div中

string - 删除备忘录上的特定行

javascript - ionic 2 + Angular 2 : auto scroll to bottom of list/page/chat

c# - 接线和取消接线事件

c# - 从基类方法克隆派生类