我必须开发一个多用户聊天应用程序(如 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/