在群里,经常遇到有人问一些问题。关键是这个问题我在之前经常的出来回答。重复的问。来一个新人。问一次。我这里小小的说一下大多数接触ddpush的人关心的问题。
ddpush 可以用作IOS推送么(这个几乎是问的最多的一个问题)
答: ddpush 的本质。是通过TCP/UDP来建立客户端和服务器端的长连接。然后服务器端向客户端发送消息。客户端收到消息 然后给服务器一个响应 这个响应就是告诉服务器 我收到了一个消息。 然后服务器就知道了 这个客户端已经成功的收到了这个消息。 这就是最基本、最普遍的推送。 然后我们来说一说Android 推送 和IOS推送。 我是做安卓的。对安卓的比较了解一些。 由于安卓机制的原因。安卓应用程序可以保持在后台继续运行。同时可以在应用程序中 创建通知消息。 安卓的推送消息就是放到通知栏中来提醒用户。
然后我们来说IOS 的 由于IOS系统机制问题。IOS的推送掌握在官方手里。在做IOS的推送时。ios的系统给开发者提供了推送的功能。在做IOS的推送的时候。需要使用IOS本身的推送。 这是官方强制的。 所以常规来说 ddpush 不能做IOS推送。 但是这里我们也应该要明白的是 ios也可以做UDP/TCP的连接。所以说。在IOS应用中也可以连接DDPUSH 并让ddpush服务器向ios的客户端发送消息。但是这个连接一般来说只能在你的应用正在运行的时候。才可以和ddpush服务器连接 并接受ddpush服务器推送到ios客户端的消息。因为ios的应用在进入后台不久就会被暂停。 代码都会停止运行。当然除了一些必须要提供的服务。比如音乐播放这些。
所以在这里再次回答 ddpush 不可以做IOS的推送。
当然 我对IOS开发也不怎么熟悉。上面说的只是个大概。错了的话欢迎留言指正。我好修改。但是这个问题的回答依旧不变。
ddpush 可以推送给多个人么?可以分组、群组推送么?
答: 不可以。 ddpush本身 只是提供了单一的推送到一个客户端。ddpush的主要思想是下发指令。 分组推送、群组推送、这些是各自项目里的应用层面。 分组、群组这些应该是你自己项目中的应用服务器 来处理、管理 这些群组、分组数据 信息。 ddpush不提供 也不应该提供分组、群组处理功能 加上分组、群组推送的功能。就很大的程度上限制了ddpush的使用或者说限制了ddpush的实际应用。
再次回答 ddpush不支持多人、分组、群组推送
如果你有这方面的需求。你有两种办法。
第一种办法: 修改ddpush源代码。自己添加 分组、群组 推送功能。
第二种办法: 自己外部处理、组织分组、群组用户。然后在外部去循环的向这些多人、分组、群组用户推送消息。
一个服务器上可以启动多个ddpush服务器么?
答:可以。 但是你需要求改每个ddpush服务器的所有监听端口。一个服务器上启动两个、或者多个ddpush启动失败。那基本上就是端口问题。没有修改多个服务器的端口。
ddpush 可以推送多条消息么? 有消息队列么?
答:没有。 ddpush只保证推送给每个客户端的最后一条消息的到达率。 也就是说ddpush在推送给同一个用户消息时 如果这个用户 没有在线,ddpush就会等待这个用户登录的时候才去给他推送这条消息。如果 在这个用户没有登录的时候 又有新的消息需要推送给这个用户。ddpush就会把之前没有推送成功的消息抛弃。然后推送这个新的消息。 也就是说ddpush服务器没有客户端消息列表。
ddpush 可以做点对点通信么 ?
答:不可以。 ddpush不可以直接做点对点通信。 通常来讲我们说的点对点通信是指客户端对客户端直接通信。ddpush主要是服务器像客户端发送消息。所以直接使用ddpush是无法做到点对点通信。 不过可以通过ddpush的服务器中转。来做一个client和另一个client的通信。