在 Viber 或 Telegram 等聊天应用程序中将客户端连接到服务器

Posted

技术标签:

【中文标题】在 Viber 或 Telegram 等聊天应用程序中将客户端连接到服务器【英文标题】:Connecting client to server in chat apps like Viber or Telegram 【发布时间】:2015-04-20 22:03:11 【问题描述】:

我想创建一个像 Viber 或 WhatsApp 等应用程序。我的主要挑战是连接客户端和服务器。现在我知道我必须使用 Websockets 标准进行连接。对于 Web 客户端,我想使用标准 Websockets,对于 androidios,我将使用基于 Websockets 的库。例如在这里你可以看到一个例子: http://www.elabs.se/blog/66-using-websockets-in-native-ios-and-android-apps

这种方法是否适合这个目的?还有什么其他选择?例如 Viber 或 Telegram 如何面对这个问题?请帮助我在开始之前选择正确的方法。 我将有 3 个客户端:Web、Android、iOS

【问题讨论】:

【参考方案1】:

是的,这是正确的方法。如果你想保持与服务器的持久连接,你将需要使用 websockets,这对于聊天应用程序来说是必不可少的。您可以尝试使用提供 webSocket 功能的 3rd 方库,例如 SocketRocket(https://github.com/square/SocketRocket)

作为替代方案,您也可以尝试使用第 3 方聊天 SDK,例如 Pepper Talk (https://github.com/Espreccino/PepperTalkSDK-iOS),它提供了完整的聊天功能,包括开箱即用的 Web 套接字、通知、UI 等。

免责声明:我是 Pepper Talk 的联合创始人。

【讨论】:

我也面临同样的问题,我写了一个支持视频和语音通话的 voip 应用程序,使用 Asterisk,服务器支持 XMPP 和简单的 sip 消息交换,所以你建议使用 3rd 方聊天服务器?是否有任何具有群聊和...等功能的开源聊天服务器?【参考方案2】:

大多数应用都使用 XMPP 协议来发送即时消息。

Websockets 是标准 TCP/IP 套接字的包装器,所以我的意见是改用它们。

您最大的问题实际上是移动设备的电池消耗。节省电池的一种简单方法是使用 Firebase 云消息传递 (FCM)。在此处阅读更多信息:https://developer.android.com/training/efficient-downloads/regular_updates.html

【讨论】:

以上是关于在 Viber 或 Telegram 等聊天应用程序中将客户端连接到服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Telegram 中下载群组的聊天记录?

在 Whatsapp 或 Viber 上接收推送通知即时消息

Telegram Bots:我现在可以开始聊天吗?

ChatGPT 拓展资料:Telegram Bot 打造专属聊天机器人

在 SwiftUI 中制作聊天应用程序:如何让 ScrollView 在键盘出现时保持原位?

如何使用 Telegram API 通过给定的 joinlink 获取私人频道的聊天 ID?