产品常见问题解答

商务合作

1. 云巴是如何收费的?

答: 请参考 价格页面定价规则,以及相关 Blog


2. . 免费版每秒 20 条信息,超出后会怎样?

答: 如果用户的使用量超出了免费版的限额,我们会提醒用户升级为付费服务。如果用户拒不接受,我们会在后台做出相应的使用限制。


业务范围

3. 在那些地区可以使用云巴的服务?

答: 目前,云巴提供中国大陆、中国香港、东南亚及北美地区的接入服务,如需开通其他地区的接入服务,请联系我们的商务人员。


4. 云巴是做推送的吗?

答: 云巴,即云消息总线,是一个跨平台实时消息系统。消息推送只是云巴其中一个产品。


5. 云巴可以用于智能家居、物联网吗?

答: 云巴兼容标准的 MQTT 3.1 协议,即物联网协议,因而天然支持智能家居、物联网。


6. 云巴对 MQTT 协议做了哪些扩展?

答: 请参考我们的 Porting 文档


7. 云巴有哪些产品?

答: Android、iOS 消息推送(集成 APNs),跨平台双向实时通信,实时查看统计信息,实时获取在线状态。


8. 云巴能用在 Web 上吗?

答: 可以。云巴支持 Socket.IO 协议。请参考官网上的 Socket.IO APIRESTful APIJavaScript SDK 文档。


9. 云巴系统可以用来发短信吗?

答: 不可以。


10. 云巴可以根据地域进行推送吗?

答: 暂不支持。


11. 请问从国外访问云巴的服务会有问题吗?

答: 没问题。


12. 云巴有完整的聊天系统可直接用吗?

答: 云巴只做最底层的消息系统,发送的具体内容不做处理。


13. 怎么获取发送者的信息

答: 云巴不会对用户推送的消息进行任何操作,所以也不会加上诸如发送者信息这样的信息。如果用户想在获得消息的同时获得发送者信息这样的信息,可以把消息体打包成一个 json 格式的字符串来进行发送。在消息体内加入发送者别名这样的信息。然后在收消息的时候对 json 做一定的解析。例如在下面的 JavaScript 例子代码中,我们把消息、自定义的用户名和数据类型进行了打包,然后发送出去。

...
var data = JSON.stringify({
    dataType: 'MESSAGE',
    dataContent: $('#chatroom-input').val(),
    username: this.model.get('username')
    });
this.publish(app.chatroomTopic, data);

基础问题

14. 什么是云巴 Portal?如何在云巴 Portal 上创建新应用?


15. 什么是 AppKey?


消息推送、实时消息

16. 云巴 iOS 消息推送是怎样的?


17. 如何通过云巴实现 APNs 推送?


18. 云巴 Android 消息推送是怎样的?


19. 和其他公司相比,云巴的消息推送有什么不同?

答: 云巴支持双向推送,一个客户端既可以 Publish 也可以 Subscribe。而其他家的单向推送只能执行 Subscribe,在执行 Publish 时,还需要提供新的接口。


20. 云巴支持的 频道 和 别名 两种发布方式,具体是怎样的?


21. 如何实时获取用户(设备)的在线状态?


22. 云巴的离线消息是怎样的?


23. 云巴的消息送达率是多少?

答: 排除网络链路层的因素,理论上送达率是百分之百。


24. 云巴的实时消息系统依赖什么网络环境?

答: 2G,3G,4G,Wi-Fi 均可。


25. 发送消息出现超时是什么原因?

答: 请先检查网络连接是否正常。


26. 发送的消息大小有什么限制吗?

答: 建议不要超过 4 KB。


27. 支持发送语音、图片、视频吗?

答: 大数据建议使用第三方存储。可先将资源保存到服务器,然后推送地址。

最佳实践:云巴适合传输长度不超过 4 KB 的信息,比如物联网设备的控制信令、普通文字聊天信息等。如果需要传递超过 4 KB 的信息(比如图片,视频等),建议先使用第三方存储,然后在云巴系统通道中传递超链接。频繁地传递超过 4 KB 大小的信息可能会受到云巴系统的限制,降低通信质量。


28. 发出的消息有历史记录吗?

答: 自 2016 年 9 月起,用户可以在 Portal 的应用管理界面查看应用的所有客户端的消息历史。(此功能目前处于 Beta 阶段,暂时只提供 5 天的消息历史记录。)


29. 订阅一个频道后,可以收到在订阅之前频道内推送的消息吗?

答: 不可以。


30. 发送方怎样知道接收方收到了?

答: 服务器收到第一条 PUBACK 时,会给发送方发一个 RECVACK


31. 发布的消息可以撤回吗?

答: 目前不支持撤回。


33. 发布消息前必须先订阅频道吗?

答: 发布端可以不用订阅,但接收端必须订阅了频道,才能收到该频道发布的消息。


34. 为什么我可以收到自己发布的消息?

答: 只要订阅了就会收到。


35. App 重新安装以后,之前的别名、订阅等信息都还在吗?

答: 在。别名、订阅关系都存储在云巴服务器上。


36. 是不是订阅一次就可以永久有效?

答: 是。


37. 频道的数量有限制吗?

答: 没有。


38. 离线消息的数量有限制吗?

答: 每个 Topic 最多保留 50 条。如有需要,可以联系我们提高限制数量。


39. 可以同时给多个频道推送消息吗?

答: 不可以。一次只能向一个频道发布消息。


40. 云巴可以定点推送给某个设备吗?

答: 可以,请参考 别名(alias)的相关文档。


41. 推送的消息出现乱码是什么原因?

答: 云巴采用二进制透传,不对消息做任何处理。如果出现乱码,请自行检查应用的编码解码程序,确保发送端的 encode 和接收端的 decode 编码一致。


42. 使用云巴 SDK,怎样实现不同平台之间的通讯呢?

答: 在云巴官网 Portal 创建新应用,创建后得到一个 AppKey,在不同平台上使用同一个 AppKey,即可互相通讯。


43. 不同 AppKey 之间可以互相通信吗?

答: 不可以。一个应用包名对应一个 AppKey,使用同一个 AppKey 的客户端才可以相互通信。


44. Android SDK 不同包名可以互相通信吗?

答: 使用云巴 Android SDK,如果需要同一个 Appkey 不同包名的客户端之间能够互相通信,请把 Appkey 对应的包名发到 support@yunba.io,我们会在内部做些处理来支持。


45. 用 Portal 和一个设备做测试时,“活跃用户” 显示 2 个用户?

答: 因为 Portal 本身也相当于一个 JavaScript 客户端,所以会被统计在内。