jfeng
常见的后台实践 推荐理由 本文是一篇 objc.io 网站文章的译文,主要探讨一些常用后台任务的最佳实践。我们将会看看如何并发地使用 Core Data ,如何并行绘制 UI ,如何做异步网络请求,研究如何异步处理大型文件,以保持较低的内存占用,等等。非常值得一读。
Objective-C Runtime Method Swizzling 和 AOP 实践 如何自己动手实现 KVO 简介 详细说明了 objective-c runtime 背后的机制 推荐理由 读懂了这三篇,就有极大可能通过 LeanCloud 技术面试了:)
你好, 我是 LeanCloud CTO 丰俊文,非常感谢你能够如此直接和坦诚地指出问题,你的「拷问」涉及到团队、产品和工程,是一个很大、很严肃的问题,我白天还有一些琐碎的事情要处理,而晚上正好可以安静地思考和讨论,所以回复较晚,还望见谅。 这里我想稍微解释一下最近的这两件事情。 对于 6 月 6 日的服务故障,我们引入 Mesos 和 docker 容器技术,是为了更好地自动化运维,以保证平台更灵活的水平扩展能力。过去的这半年,我们业务增长比较快,有更多新用户进来,也有更多团队的业务成长起来,这对我们平台的弹性扩展提出了更高要求,所以我们尝试将服务容器化,让部署自动化。Mesos 系统上线之…
可能你单独建立两个计数器是更好的解决方案,可以参考这些文档: https://leancloud.cn/docs/ios_os_x_guide.html#计数器 https://leancloud.cn/docs/android_guide.html#计数器
amount 给负数就是减少了。
你好,非常感谢你的建议。我们现在的美国节点,主要还是面向团队在国内、业务要出海的开发者,其定位和我们在国内多开一个节点是一样的,所以并不是我们国际化的版本。不过我们是有计划来做国际化运营的,到时候文档、网站都会有完整的英文版支持。你说的 GraphQL 功能,我们也会仔细考虑一下。只是这些工作,目前还不是我们考虑的重点,希望你能理解。
你是怎么发送这条 status 的?
看了一下你的代码,是所有人都无法获取到这个通知吗?因为我们任何 Query 都是有结果条数限制的,所以你使用 AVUser.getQuery() 这样来发,也不能发给所有人的。
我的 QQ:17633584
新注册的用户肯定无法获得他注册之前的信息了,因为原来的 status 发送的时候还没有这个 AVUser 对象呢。可以考虑两个解决方案: 1,使用云引擎,在用户注册成功之后,把所有全局的 Status 发到他名下; 2,或者将这种全局的信息不放在 Status 里面,用一张专门的表来存放,展示的时候从这张表获取数据。
像微博广场那样的数据,其实不在任何人的 timeline 里面,使用单独的表来存储是最合适的。
如果一定要用 Status 接口,那就需要用「匿名用户」来做了。具体文档可以看这里: Android 开发文档 和 iOS 开发文档
ccj22: 还有匿名用户 会自动在_User表插入一条数据?那这样会产生大量无用数据 匿名用户会在用户注册的时候,自动转变成注册用户,所以基本上会让你的 User 表大小等同于实际的用户规模(包括注册与非注册用户)。
ccj22: 这部分我看自定义status 发送的是自定义状态 查询的是收件箱 AVStatus.INBOX_TYPE.TIMELINE个人理解是不是相当于发送私信给所有人 AVStatus.INBOX_TYPE.PRIVATE发送私信给一个用户 嗯,是这样的,发送自定义状态基本上就等同于往任意用户的某种类型的信箱里面投递状态,然后每个用户都可以打开自己的信箱收到别人希望他看到的状态。 所以基本上你这个需求,对于未注册用户,使用我们的「匿名用户」来做,是比较合适的。
对于广场、附近、推荐这些 tab 的内容展示,因为是全局性的数据,不会在我们应用内社交里面来做,你还是自己建表吧。
每个人的 status,你先推给 TA 的粉丝。然后把这条 Status 存到一张独立的表里面(譬如表名为A,记得带上地理位置信息)。这样直接按照时间先后读取 A 里面的数据,就是“广场”;根据当前用户的位置,找 xx KM 以内的信息,就是“附近”。
哦,那可以直接使用 Status 表啊。
让广场数据直接从 Status 表读取,就不需要这样做了。
这时候你直接取这个人的 Status 展现出来就可以了,但是他发布的内容不会进入别人的 timeline。
欢迎大家在这里向我们 报告 LeanCloud 自身的 bug 。 我们会及时确认并安排修复已提交的 bug,解决后会及时通知到大家;如果最终确认不是 LeanCloud 平台自身的 Bug,发帖会被转移到对应的版块。 请注意,开发者如果有新的需求,请到 意见反馈版 发帖;如果有使用上的问题,或者希望寻求帮助,请到 问题讨论区 发帖。
[用一段简短的话描述分类,并替换这第一段的内容。这段文字将出现在分类选择区域,所以尽量不要超过200个字符。当你编辑了这段文字或者再次分类创建了一个主题后,分类才会出现在分类列表中。] 在接下来的一段文字中输入分类的详细描述信息,可以在这里包含在此分类下讨论的规则、内容导向等等。 考虑这些事情: 这个分类用来做什么? 为什么人们选择这个分类寻找主题? 这个分类和其他已有分类有什么不同? 我们需要这个分类么? 我们应该和已有分类合并吗?还是分离成更多的分类?
对于用户反馈的使用问题,经 LeanCloud 工程师确认如果确实是一个 Bug,不过由于影响范围极小,或者使用场景特殊,等原因导致暂时无需修复的,移入此分类。如果将来发现 Bug 需要处理,则会移入「待修复」分类中,由专门的工程师来跟进。 本分类由 LeanCloud 技术支持团队管理和维护。
用户报过来的问题会被移入这个分类。 如果将来确认确实是一个 Bug,则会移入「待修复」分类。 如果问题因为各种原因,例如,LeanCloud 工程师经过各种尝试一直无法复现,也无法联系上开发者,1 个月内无法确认的话,将移入「问题讨论」分类。 此分类由 LeanCloud 技术支持团队管理。
你好,多谢反馈。请参考这里:https://leancloud.cn/docs/error_code.html#_216
先暂时封闭了那个用户,现在应该可以了,您可以再试一下。
之前对 id 字段有预留,现在去掉了,所以 id 字段里面可以使用。 现在这是我们控制台显示上的一个 bug,实时上 id 里面是有数据的,通过 REST API 获取这条记录是有数据的。 我们会尽快修复这个展示上的 Bug。
4 月中旬 LeanCloud 正式推出了 国际短信业务 ,该业务覆盖了北美洲、南美洲、欧洲、大洋洲和亚洲的主要国家和地区。开发者使用 LeanCloud 短信 API 即可将短信发送至全球数十亿的手机用户! 具体开通方式和使用方法请看 博客:正式开通国际短信服务 。 近期的勒索病毒「WannaCry」可能让大家心有余悸吧,比起 WannaCry 的明面儿勒索, 短信轰炸 来得更加龌龊,一旦中招它会暗地发送大量短信耗尽你的预算。目前, 图形验证码 captcha 是防范这种网络恶意攻击最有力的手段,因此,我们推出图形验证码这项增值服务来让用户们高枕无忧。 与其他类似服务提供商相比,我们更侧重于…
本主题已全局置顶,它将始终显示在它所属分类的顶部。可由职员对所有人解除置顶,或者由用户自己取消置顶。
本主题在创建 3 天后自动关闭。不再允许添加新回复。
尊敬的 TAB 移动开发工具用户, 腾讯云已于上月发出通知:「自 8 月 15 日起移动开发工具(TAB)这个产品将会完全交由 LeanCloud 来运营。此次变动只涉及到运营主体的变更,云端的服务和数据可以做到不受影响。」如果您错过了该邮件通知,可以参考 LeanCloud 官方博客的说明。 今后 TAB 会从腾讯云中分离出来,变为 LeanCloud 主站下的「华东节点」。此次变更需要您明确同意 LeanCloud 的使用协议成为 LeanCloud 用户,原来的服务才能继续使用。截止至 8 月 14 日午夜,如果您仍未同意并接受我们的迁移条款,或者已同意迁移条款但账户下存在商用版应用且账…
补充说明:新的控制台登录方式 TAB 用户需要使用新的网址 https://tab.leancloud.cn/dashboard/login.html 来登录应用控制台。输入与登录 TAB 相同的邮箱和密码即可登录。如果忘记了密码,可以通过下方的「忘记密码?您可以选择重置密码」功能找回。 另外,LeanCloud 主站也提供了进入 TAB 应用控制台的入口: 访问 LeanCloud 主站 https://leancloud.cn 点击右上角的「 访问控制台 」链接 在出现的登录页面中,点击页面下方的「 前往华东节点(原 TAB)登录 」按键。
本主题在创建 3 天后自动关闭。不再允许添加新回复。
8 月 21 日,新版 LeanCloud 官网正式上线。在此次改版中我们翻新了所有产品与服务的介绍,调整了开发版、商用版和企业版的结构与描述,希望以此能够帮助现有及潜在用户更清楚地了解 LeanCloud 各类产品的实用性及以上三种使用方案之间的差异性。另外,各项服务的价格并没有变化,所以不会导致使用成本增加。 区分核心服务与扩展服务 文件存储、短信、云引擎、云缓存这些服务都统一按照实际使用量收费,并不会因使用方案不同而产生价格或功能上的差异,因此我们将它们从核心服务中抽取出来放入扩展服务。这样的区分也让整个使用方案体系看起来更加简化易懂。 需要说明的是, 文件存储和短信服务 是我们与第三方…
本主题在创建 3 天后自动关闭。不再允许添加新回复。
你好,昨晚上我们发现了一个问题,所以暂时把 job 提交/查询的入口关闭了,现在正在内部处理中,大概在 11 点的时候会重新开放。非常抱歉给您的使用带来困扰!
屏幕快照 2018-09-29 下午5.40.27.png 1246x382 46.4 KB LeanCloud 将于 2018 年 10 月 1-7 日按照国家法规放假七天,10 月 8 日周一恢复正常工作。放假期间运维团队仍将在线值班,以应对可能的突发情况,保障服务稳定。 放假期间 LeanCloud 工程师会部分时间在线,处理紧急事件和回复工单。购买了技术支持的用户仍可以通过工单系统来提交问题,我们会尽快回复,但无法保证在一天之内完全解决。若有遗漏我们会在节后第一时间进行处理,希望大家体谅。 如若发生紧急情况,请联系值班人员电话 186-2503-8918 ,我们会及时响应处理。
本主题已全局置顶,它将始终显示在它所属分类的顶部。可由职员对所有人解除置顶,或者由用户自己取消置顶。
本主题已被解除置顶,它将不再显示在它所属分类的顶部。
本主题已被解除置顶,它将不再显示在它所属分类的顶部。
本主题在创建 3 天后自动关闭。不再允许添加新回复。
接到华北节点的底层服务商通知,2018 年 11 月 02 日(周五)凌晨服务商将对机房内网的核心设备进行升级维护。为了保证对外服务稳定,我们会提前将流量切换至其他线路,但是切换过程可能出现网络抖动,造成各项服务的网络请求出现短暂失败。 升级时间 2018-11-02 00:00 – 07:00(北京时间) 影响范围 华北节点的应用 影响描述 网络切换时有可能出现短暂的请求失败,但会很快自动恢复。 我们运维团队会密切关注升级过程,期间若服务出现不可用状况,我们会通过邮件或短信及时与开发者沟通进展。如果有任何疑问,请发邮件至 support@leancloud.rocks 进行咨询。
本主题在创建 3 天后自动关闭。不再允许添加新回复。
相信很多朋友都非常关注谷歌新推出来的 Android Pie 系统,在这一版本中谷歌加入了很多新的功能和 API,但是对我们开发者影响最大的可能是其完全取消了 Apache HTTP 的支持。 虽然这是一个早在 Android 6.0 即引入的变更(详见这里: 取消支持 Apache HTTP 客户端 ),但是我们还是可以通过在 build.gradle 中增加如下声明而得以继续使用它: android { useLibrary 'org.apache.http.legacy' } 但从 Android P 开始,Apache HTTP 客户端变得完全不可用,依赖于此 library 的应用在…
看错误信息是 android studio 打包的时候因为多个 dex archives 所以失败了,你可以在 build.gradle 中声明支持 multi dex merge 就可以了。
移动统计服务和数据存储服务一样是 LeanCloud 最早上线的产品。在大多数人还没有听说过「Backend as a Service」,「Serverless」这个名词还没被发明的时候,很多用户因为移动统计这样熟悉的功能开始了解和使用 LeanCloud,并成为多年的深度用户。 在最近一段时间,我们除了推出 Play 游戏后端服务这样的全新产品,并进一步加强在海外市场的扩展外,也在对现有的后端架构和产品线进行梳理。LeanCloud 的几乎所有服务都专注于帮助用户更快、更好、更可靠地实现产品功能,面向的目标人群都是开发者。而移动统计服务是产品运营的辅助工具,主要目标用户是运营人员,我们曾多次…
这次只是调整移动统计这一项服务,其他的服务都不受影响,并且我们会把更多资源投入到核心服务的研发中去。
请在 application 的 onCreate 函数里初始化 SDK: AVOSCloud.initialize(Context context, String applicationId, String clientKey); 参考这里的说明:https://leancloud.cn/docs/sdk_setup-android.html
那 manifest 文件里面有没有声明 application 呢? 如果实在查不出来,你可以把基本工程代码发上来,我们帮忙 debug 看看。
您好,我们从后台看到,您账户余额从 189.97 变成了 200.97 元,请问有什么问题吗?
您好,可以提供 debug 日志吗?
这一次我们采用了源码配 demo 的形式来公开这一功能: - vivo 混合推送 SDK 源代码:可参照 这里 。 - vivo 混合推送 demo:可参照 这里 。 - 具体接入的流程可参考 文档:vivo 混合推送 欢迎感兴趣的开发者试用,也期待大家给我们更多的反馈。
本主题在创建 3 天后自动关闭。不再允许添加新回复。
当时开发版应用所在的 MongoDB 数据集群压力较大,replica set 之间出现同步问题,master 节点宕机之后,secondary 机器代替 master 工作,造成了少部分只写入 master 节点上的数据丢失,并且因为开发版的数据库集群并没有备份机制,我们现在也无法找回了,非常抱歉。
尊敬的开发者,您好: 北京时间 2019 年 4 月 15 日,华北节点一个开发版应用的数据存储集群出现故障,导致一部分开发版应用以及数据存储还落在上面的个别商用版应用受到影响,以下为详细报告。 故障节点和影响范围 华北节点上数据落在该开发版存储集群上的开发版应用(也包括还在该集群上、尚未来得及迁移到商用版存储集群的个别商用版应用),全部服务都不可用,控制台登录也受到影响。 华北节点落在其他开发版存储集群上的开发版应用,以及绝大部分商用版应用,都不受影响。 故障时间 09:41 - 10:58(约 77 分钟) 故障时间线 09:41: 某一个开发版数据存储集群因为支撑应用过多压力过大,导致宕…
我们在 这里 公布了故障说明,请移步这里了解详情,谢谢大家的支持和理解!
hei: 2.是否需要切换到商业版才能规避这样的服务器大面积停机? 商用版应用我们底层使用的物理设施是更好的,可以承担更大的业务流量,并有更好的性能,而且我们也只对商用版承诺明确的 SLA 保证,所以,如果是正式的业务希望大家慎重选择开发版。 我们提供开发版的目的,主要是针对开发阶段和个人项目的解决方案,让开发者可以几乎无成本地使用 LeanCloud 服务,完成产品初期的开发,或者支撑自己的个人项目。开发版有一些资源上的限制,但足以满足产品开发阶段的需求以及非关键应用的正常运行。 当然,本次故障也影响了 1% 左右的商用版用户,这确实是一个意外,我们今后会加强商用版的迁移速度,并加大商用版应…
本主题在创建 3 天后自动关闭。不再允许添加新回复。
这个可能需要您把工程 clean 之后重新打包就可以了。
https://leancloud.cn/docs/rest_sms_api.html
我们在一段时间之前曾 通知过大家 LeanCloud 中国版将停止为不绑定自有域名的应用服务。我们将从 10 月 1 日起执行这个规定。 这个决定的原因以及绑定域名的过程 上次的通告 已经详述。这里我们再说明几点: 需要绑定的域名包括 API 域名、文件域名、云引擎域名。如果您只使用部分服务,只需绑定所使用的服务对应的域名。这三个域名可以是您的一个顶级域名下的三个不同的子域名。域名绑定步骤与具体细节请参考 域名绑定指南 。 没有绑定自有域名的应用,相关服务将会被禁用。如果没有绑定 API 域名,存储、即时通讯、云函数会被禁用;如果没有绑定文件域名,将不能使用文件相关的 API;如果没有绑定云引…
LeanCloud 推出至今,主要都是通过公有云的共享集群模式来服务客户。随着业务成熟度的不断提升,众多企业客户对平台稳定性、后端可控性以及功能多样性方面的要求越来越高,而其中有些需求是共享集群模式很难实现的,所以我们现在推出了新的 独立部署方案 ,希望减少使用中的限制,给开发者更大的灵活性,同时也提供一个更加稳定可靠的完整后端,满足业务系统的更高要求。 新的独立部署方案里,我们会使用「 独立的存储集群 + 独立的 API 集群 + 独立的扩展服务集群 」的模式来构建一个完整的、物理隔离的公有云系统,供单个用户和应用独享使用。这里的「扩展服务」是指基于存储到云端的结构化数据,解决特定业务需求的…
本主题在创建 3 天后自动关闭。不再允许添加新回复。
尊敬的用户,您好 为了平衡成本,引导大家合理使用 LeanCloud 云引擎服务,从现在开始我们会限制每个应用云引擎实例免费使用的流量上限 不超过 1 GB/天 。 从现阶段的统计结果来看,正常应用的流量消耗都在这个阈值之下,开发者无需对这一限制进行特别处理;对于个别超出限制的用户,我们会单独联系,讨论一个平衡业务需求和资源成本的合理解决方案,谢谢大家的支持! 更新:关于免费额度和超限收费的详情,请查看 最新的公告 。
在 6 月 26 日,我们发出过 域名绑定的通知 ,按照主管部门的要求,也为了避免 LeanCloud 共享域名可能存在的潜在风险,请开发者尽快为国内节点的应用绑定 API、文件和云引擎的自定义域名。8 月 5 日我们再次发出 进度通知 ,确定 在 10 月 1 日之后将不再为未绑定自定义域名的应用提供服务 。 对于绑定自定义域名一事,有些开发者还存有一些疑问,这里我们在做一个详细说明。此次域名主要涉及到三大类的服务: 结构化数据存储和即时通讯服务,访问 REST API 时需要开发者使用自有域名。 云引擎服务,不管是网站托管还是云函数调用,都需要使用自有域名进行访问。 文件服务,上传文件之后…
消息推送和短信服务并不强制要求应用绑定自有域名,但是也推荐大家这么做(为了防止 LeanCloud 共享域名不可用)。 上面有说明,只用短信可以不绑定域名,但是建议大家绑。
您好,我们现在不支持这样的操作,access token 无法直接给您使用,并且这个 api 还需要额外计费。建议您直接使用七牛的存储服务,而只把 url 存放到我们这里(使用 AVFile(name, externalURI) 这样的构造函数),这样比较方便。
独立部署的存储服务(详见 博客 )推出之后,很多开发者表达了兴趣并申请测试。为了进一步提升数据处理能力,支持部分用户提出的诸如「跨表 join 查询」、「distinct 查询」等需求,我们在独立部署的 API Server 中增加了索引和聚合查询(aggregation)的 REST API 支持。 在独立部署数据库 + 独立部署 API Server 的方案下,开发者将可以通过 REST API 来完成如下操作: 展示、新建或者删除索引; 执行 join、distinct count 和 group by 查询等等高阶功能; 可以将查询结果直接存入某个 class; 有关 REST API…
您好,我们已经发布了 6.0.5 版本,修复了这一问题,您可以升级一下。
本主题已置顶,它将始终显示在它所属分类的顶部。可由职员对所有人解除置顶,或者由用户自己取消置顶。
本主题在创建 3 天后自动关闭。不再允许添加新回复。
从 11 月 8 日凌晨开始,LeanCloud 华北节点云引擎外网 IP 遭受了多次的 DDoS 攻击,导致不少应用托管在云引擎上面的网站访问受到严重影响。根据初步统计,截止今天下午 4 点整,我们一共遭受了 23 次攻击,这些攻击行为短则 10 秒,长则 30 分钟,其攻击带宽的峰值最高达到 20Gbps,导致我们 23 个出口 IP 被封堵。下午 4 点以后,攻击也还在陆陆续续发生,但流量已渐渐走弱。 在遭受攻击的时候,我们采取了多种措施进行补救,包括启用高防系统进行流量清洗、更换公网 IP、将部分商用版应用圈定到特定 IP 池进行保护,等等。但是从技术上来说,这些都属于事后补救措施,并…
本主题在创建 3 天后自动关闭。不再允许添加新回复。
LeanCloud Android SDK 从 6.1.1 版本开始,除了支持通过 appId + appKey 完成初始化,还提供一种更加安全的使用方式,支持仅仅通过 appId 来初始化应用,从而避免了在客户端暴露应用核心配置信息可能带来的潜在风险。 新版本 SDK 增加的初始化方式如下: import cn.leancloud.AVOSCloud; public class MyLeanCloudApp extends Application { @Override public void onCreate() { super.onCreate(); // 提供 this、App ID、…
本主题在创建 3 天后自动关闭。不再允许添加新回复。
您好,这确认是我们 SDK 的 bug,我们会尽快发新版,到时候会通过这个帖子通知您。
您好,这个错误表示需要你们设置 serverUrl,也就是要配置自定义访问域名。详见这里的文档: https://leancloud.cn/docs/custom-api-domain-guide.html 请注意初始化的时候设置 serverUrls: https://leancloud.cn/docs/sdk_setup-js.html#hash20935048
这是 fastjson 依赖版本不对导致的。 在 Android 上面,请使用如下依赖: implementation 'com.alibaba:fastjson:1.1.70.android' 如果是纯 java 平台,我们 storage-core 依赖的的 fastjson 版本是 1.2.60
另外,请切换到 java unified sdk。看起来你现在还在使用我们的老 sdk。
我们今天会发布 6.1.6 版本 SDK,支持和 JavaScript SDK 一样的功能: /** * save to cloud backend. * @param keepFileName whether keep file name in url or not. * @return Observable object. */ public Observable<AVFile> saveInBackground(boolean keepFileName);
getFirstInBackground() 应该是好的,getInBackground 这个方法里面忽略了 include keys,我们今天会发一个版本修复它。
你这是在 Android 里调用,还是在纯 Java 环境内调用?
如果是在 Java 环境下使用,因为 realtime-core 没有提供本地数据库缓存,所以 CACHE_xxx 的策略都是不可行的,你可以在query 之前设置 policy 为 NETWORK_ONLY,例如: query.policy = AVQuery.CachePolicy.NETWORK_ONLY; query.findInBackground(new AVIMConversationQueryCallback() {});
我们发布了 6.3.0 版本修复了这个问题,你可以升到最新版,或者老版本在 find 调用之前指定 NETWORK_ONLY 的 policy 来请求。
你使用的 fastjson 版本不对,请按照我们文档的说明来集成:https://leancloud.cn/docs/start.html
你是否把 Observer 和 Disposable 引用的 package 搞错了?应该是 io.reactivex 下面的,但是 androidx 里也有同名的 class,这要注意。 我这边在 androidx 环境里执行是正常的。
可以啊,你发上来吧,把 appid/appkey 去掉即可。
POST 这个方法就是表示 create 啊,这是 http method 的本意。 如果你要修改,请使用 put 方法,并指定 objectId,具体可参看我们 REST API 文档。
最近有开发者跟我们反馈,在 Android 平台上使用的 fastjson-android 库存在一些问题,希望我们切换到标准的 fastjson jvm 版本。而 jvm 版本最近维护的进度好像也放慢了,一样存在一些累积的问题没有及时得到解决。 为此我们特意做这个调查,对于 Android 平台上的 json 库,有如下几个选项,看看使用者们的倾向(主要是为了在同一个 project 里不因为 json 解析引入太多的依赖): 统一使用 fastjson jvm 版本,不再单独依赖 fastjson-android 版本; 直接切换到 gson 库; 直接切换到 jackson 库; 请大家…
是的,lean deploy 在发布的时候并不支持指定 profile 参数,所以构建就统一按照默认值来进行。你们需要手动修改 profile 的默认值。
一直以来 Java Unified SDK 都使用 fastjson 来进行 JSON 解析,最近由于 fastjson 出现了一些兼容性方面的问题,根据不少开发者的建议,我们将 Java Unified SDK 底层的 JSON 解析模块完全切换到了 Gson 。当前最新的版本是 7.0.0-SNAPSHOT ,已经发布到了 Sonatype OSSRH (OSS Repository Hosting),欢迎大家试用并及时给我们反馈。 如何升级 开发者在业务层使用 Java Unified SDK 与 JSON 解析库,主要有如下三种情形: 业务层并没有特别使用 JSON 解析库,JSON …
本主题在创建 3 天后自动关闭。不再允许添加新回复。
LeanCloud 提供了完整的数据存储和即时通讯服务,其中即时通讯服务中有一部分元数据(例如会话表)是托管在存储服务里面的,这导致两个服务的收费项目有一些交叉,给部分开发者带来了困扰,这里我们统一说明一下。 首先看看应用层的使用场景。终端应用如果使用了数据存储服务,自然会调用我们的存储 API,这部分请求会计入存储服务按使用量收费的项目里;如果仅仅使用即时通讯服务,则大部分的请求会走 WebSocket 通道发到即时通讯服务器,其中创建、更新、查找会话(Conversation)元数据的请求,则会由即时通讯服务器转发到存储服务器(当然,应用层也可以直接按照存储 API 的方式来访问会话元数据…
现在最新的版本是 7.0.2
本主题在创建 3 天后自动关闭。不再允许添加新回复。
你好,这是我们后台应用配置的一个错误,照搬了国内节点的配置,导致国际版默认是不开放国际短信的,我们明天会帮您手动打开,并修复这一个问题。 短信发送都是需要费用的,哪怕是测试阶段也是这样,如果要测试国际节点的短信,您还需要检查一下账户余额,避免余额为 0 导致无法发送,谢谢!
抱歉,昨天是后台记录的短信发送权限配置不对,导致不能发送国际短信,今天我们已经手动处理了,你可以确认一下。
这是因为 android sdk 要求在使用自定义消息类型的时候,先注册一下自定义消息类型,而 flutter sdk 使用上并没有注册这一步,所以导致消息解析时出现信息丢失,我们刚刚发布了 6.5.12 来解决这个问题。 可能大家等 1-2 个小时就可以从中央仓库下载到了,谢谢。
我们计划在 10 月份对商用版应用进行免费的隔离升级,来提升服务整体稳定性。新的网络隔离方案如下: 我们会为拥有商用版应用的账户免费分配一个独立 IP,以此作为该账户下所有应用的存储服务默认入口。 每一个独立 IP 默认提供 2Gbps 的防护带宽,对于小规模的攻击开发者无需承担任何费用;如果遭受更大规模的攻击,开发者则可以通过在控制台购买新独立 IP 的方式来进行切换,我们也会协助开发者接入高防或其他第三方服务。 开发者如果需要多个应用之间进行入口隔离,也可以在控制台自行购买更多独立 IP(需付费),并且在绑定自定义域名的时候通过 A 记录的方式指向该独立 IP。 我们默认分配的独立 IP …
本主题在创建 3 天后自动关闭。不再允许添加新回复。
是在哪个平台(iOS/Android/Web)上产生的这条数据?我们想看看底层 SDK 是否存在漏洞。
感谢指出这个问题,我看了你提交的 PR,里面还是漏掉了 limit 参数,所以对 getFirstInBackground 这种请求来说,还是会出现缓存文件不一致的情况。 你们自己清理缓存的出发点是什么?另外就是如果自己清理缓存,为什么不完全遵照 SDK 内部生成缓存文件的机制呢?
感谢你的反馈,我这里详细说明一下那个 PR 不能合并的理由吧。 AVQuery 里面本来是希望由 QueryConditions 这个对象来负责所有查询条件的处理的,但是 AVQuery 的公开查询方法有很多种,包括: countInBackground() findInBackground() getFirstInBackground() 这几个方法还可以交叉重复调用,有些查询参数只是单次有效,并不能长久存入 QueryConditions 中,因此我们才分成两步来拼接最终的 query clause,这种方式确实不太好,也导致了你说的问题,还让 fix PR 容易产生遗漏,我们之后会考虑一…
你好,我们昨天发布了 6.5.14 版本,修复了缓存清理不对的 bug。 现在你只需要调用 AVQuery#clearCachedResult 就可以清理掉缓存文件,不需要自己去删除缓存文件了。
在纯 java 环境下使用即时通讯的功能,需要先手动建立连接,详见文档:https://leancloud.cn/docs/sdk_setup-java.html#hash-591683938
你这是在 Android 环境里,还是在纯 java 环境下遇到的问题? 在 Android 环境下,我们是通过一个后台服务来保持客户端与即时通讯云端的长链接的,但是从 Android 8.0 之后系统收紧了权限,会很快中止进入后台的应用的所有后台网络活动(也就是切断所有网络连接),这样就会导致即时通讯 SDK 依赖的网络连接中断。我们的 SDK 会在网络恢复的时候尝试自动重建连接,但是这需要一定的时间,应用层可以通过 AVIMClientEventHandler 接口来监听网络状态变化,具体可参考文档: https://leancloud.cn/docs/realtime-guide-beg…
java 后台服务与leancloud长连接断开 与 AVIMClient 的连接状态断开 是等价的。
编译错误的提示信息已经很清楚了: A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue a…
你能复现一遍,然后把完整的日志传上来吗?
另外有一点要说明的是,java 环境下长链接的有效性需要应用层来保证。android 平台我们 SDK 可以在网络中断-恢复之后自动重连,是因为我们可以得到网络状态变化的系统通知,而 jvm 下 SDK 无法得到这样的通知,所以需要应用层才处理。也就是说,jvm 上要保证即时通讯的长链接有效,应用层需要做更多的事情。
你说在本地调试是 ok 的,只是放到测试环境就不行了,是吗?你调用 sdk 的代码能贴上来吗?另外,我想看到的是完整的 debug 日志,你可以用 log4j 将日志打印到文件,然后把日志文件传上来的。
你的 appId 是多少?
说一下代码的问题吧。 1. 每次调用 ImSendMessage 都会调用 initialized 和 buildConnection 吗?我们 SDK 的初始化和 startConnection 应该是在程序起来之后调用一次就可以了的,不能每次都调用。 2. IMClient 的操作在时序上应该严格保证是在 startConnection 成功之后再做调用,也就是说 ImSendMessage 这个函数的调用时机应该放到 startConnection 的回调里面,或者等 startConnection 回调触发一个信号量之后再做调用。 你把代码按照上面的建议改一下,应该就可以正常运行了。
你使用的 sdk 版本是多少?我们来提供一份 sample code 给你试试看。
你在应用设置的安全中心里面,是否开启了「推送服务」?
post 请求的参数要放在 body 里面,你需要改一下。
你可以自己检查一下,我在命令行里注册一个用户是可以成功的: curl -X POST \ -H "X-LC-Id: CwzJ1-MdYXbMMI" \ -H "X-LC-Key: {your app key}" \ -H "Content-Type: application/json" \ -d '{"username":"hjiang01","password":"f32@ds*@&dsa"}' \ https://{yourapp}.api.lncldglobal.com/1.1/users
这看起来是 gson 版本用错了,你看看项目里依赖的 gson 版本是多少。