zyu
请问你是如何使用的? 调用 AVAnalytics.Current.TrackAppOpened(); 和 AVAnalytics.Current.CloseSession(); 了吗?
请问你是在什么时候测试的? 分析数据要延迟到第二天才可以看到,请确定一下右上角的时间选择是否包含你测试的时间,如图 image.png 2612x528 85.3 KB
AVAnalytics.Current.CloseSession() 这个会「立即触发」一次提交统计信息的请求,但是这个请求是「异步」的,所以请不要在 onApplicationQuit() 时调用。 我这里测试了一下,后台同事配合看了一下是有数据的,请参考一下。 image.png 1130x747 136 KB image.png 1554x450 115 KB
从后台看你的 app 是没有数据的。 我建议你先按我的方式试一下,试完我们这边再看一下后台。 如果你熟悉 Charles,也可以看下请求有没有成功。
嗯,从后台看数据收到了,好像是在过滤条件时有 bug,我们再排查一下。
非常感谢你的反馈,确认为 SDK 的 bug,目前已修复,请重新下载! SDK 下载地址
我这边今天已经有数据了,你看下你的控制台 image.png 2570x1608 287 KB
不客气,也谢谢你反馈的 bug
针对引擎工具的导入方式,我们在新版 SDK 中对 Cocos, Laya, Egret 做了统一导入,由引擎负责加载插件后,开发者直接引用, 请参考 reconnectAndRejoin() 的问题我会确认一下。 房主掉线的情况,是指真的离开房间了,还是离线了?(区别在于是否在玩家的 ttl 时间内),稍后我也会确认一下。 非常感谢你的反馈!
再次感谢你的反馈! 今天我们会把你遇到的问题排查并解决掉。 欢迎加入到我们的游戏开发 QQ 群 202832656,希望可以更及时的沟通交流!
针对这个问题,我尝试复现了一下场景,不知道和你描述的是否有出入: p0 创建房间(默认是房主),p1, p2 加入房间;p0 离开房间,此时 p1,p2 会收到房主切换的事件(MASTER_SWITCHED), 结果和预期一致 。 具体测试代码为: it('test master leave', () => new Promise(async resolve => { const roomName = 'tm1_r'; const p0 = newPlay('tm1_0'); const p1 = newPlay('tm1_1'); const p2 = newPlay('tm1_…
111844: 现在又发现如果能用先reconnect再rejoin的形式。ios自己断网再连接测试,rejoin会报房间已满错误 针对这个问题,我做了如下测试,p0 创建 playerTtl = 600 的房间,p1 加入房间;p1 断线后,重连(reconnect())并返回之前的房间(rejoin()), 结果符合预期 ,测试代码如下: it('test reconnect and rejoin', async () => { const roomName = 'tm2_r'; const p0 = newPlay('tm2_0'); const p1 = newPlay('tm2…
111844: 在reconnectAndRejoin(比如房间号不存在了)失败后,再次操作会报一个 ws.readyState 为null的错误。最后我只能用先reconnect再rejoin的形式。实际上,我觉得reconnectAndRejoin就算失败了,但connect不一定失败。 针对这个问题,我做了如下测试:p0 创建 playerTtl=5 的房间,p1 加入后断线,p0 也离开房间(为了使房间销毁);等待 10s 后,p1 重连并返回房间(reconnectAndRejoinRoom()),此时会报加入房间错误(房间不存在),然后可以再创建其他房间,结果符合预期。具体代码如下…
请加入到 QQ 群:202832656,这是我们专门的游戏开发服务群,方便解决你的问题。
这个「房间已满」是在什么状态下发生的? 比如说房间最大人数是几人,是通过 join() 还是 rejoin() 报的房间已满? 我描述一种场景:p0 创建房间,且设置最大人数为 2 人,playerTtl=600,p1 加入房间;此时 p1 掉线,再连接成功后: 如果 p1.joinRoom(),则会报「房间已满」,因为这个房间还有 p1 的离线数据。 如果 p1.rejoinRoom(),则正常,相当于 p1 「返回」房间。 不知道你说的是不是这种情况?
好的,非常感谢! 我们这边也会再多做一些测试,希望你能加入到 qq 群,这样有问题反馈解决都会更及时!
请问在 iOS 和 Android 上,是在浏览器,还是重新打包成了 native 的版本? 看不到其他玩家是否有报错呢? (我刚刚在 iOS 设备上测试了几次能正常显示,但由于没有按键设置,无法移动是正常情况) 「抖动」的问题不用太纠结,我只实现了一个比较简单粗糙的位置同步算法(当前的算法只选择当前点和终点,并没有记录中间节点)。可能和容忍的位置误差有关系。
好的,我们持续测试一下
请把客户端的请求日志打出来看一下。
.net 4.x 版本才支持 async/await,如果使用 3.5,请使用 .ContinueWith() 的方式
如果是新项目,建议使用 .net 4.x,在 Unity Editor -> Player Setting 中选择 Script Runtime Version 就可以了。
看看 crash 的内容,确定是否和 sdk 有关系。
之前提到的「强行退出」是指什么?
这个没什么影响的
请提供一下 SDK 的版本号
请提供一个测试的工程和代码,我这边来复现一下
好的,我看一下,有进展会同步到这里
非常感谢反馈的问题,我们已经确认修复,并发布了新版本 2019.6.4.9 如果使用 dotNET-getting-started 工程,请更新依赖库到最新版本 2019.6.4.9,再部署到云引擎 image.png 774x698 155 KB
dotNET-getting-started 这个项目我们也更新了依赖库的版本
AVIMTextMessage 实现了 IEnumerable> 接口,所以可以像 Dictionary 一样「存取自定义属性」。 参考代码如下: var mre = new ManualResetEvent(false); var r0 = Utils.NewRealtime(); var c0 = await r0.CreateClientAsync("mt1_c0"); var r1 = Utils.NewRealtime(); var c1 = await r1.CreateClientAsync("mt1_c1"); c1.OnMessageReceived += (sende…
当收到消息时,会触发 OnMessageReceived 事件,从事件参数中可以拿到 AVIMMessage 对象,这个对象中包含 ConversationId(会话 Id),根据会话 Id 就可以拉取到会话对象了。
非常感谢您的反馈,确认为 SDK 的 bug,现已修复,请下载新的 SDK。 v2019.6.11
是不是没打开「网络权限」?
@leeyeh
请打开日志看一下有无异常
非常感谢您的反馈,我们确认是 SDK 的 Bug,现已修复并发布新版本,请更新: v20190805.1
请问你使用的是 js 还是 c# 的 sdk?哪个版本呢?
用法可以参考 单元测试 如果还有问题,请粘贴一下代码和日志。
可以的,我刚刚测试了一下你描述的嵌套对象。 it('test change room properties', () => new Promise(async resolve => { const roomName = 'tcp0_r'; const p0 = newPlay('tcp0_0'); const p1 = newPlay('tcp0_1'); let f0 = false; let f1 = false; await p0.connect(); await p0.createRoom({ roomName }); p0.on(Event.ROOM_CUSTOM_PRO…
3 层嵌套也是没问题的。 日志打开方法
joinOrCreate() 的含义是如果有此 id 的房间,则执行加入逻辑;否则创建房间,只有在创建房间时,才会使用到 options。 用法参考 无法知晓是「创建」还是「加入」了房间。 因为「这个房间是否是某个玩家创建的」意义不大,如果想区分其他玩家,可以通过判断玩家是否为 Master。 如果确实需要知道这个结果,可以先 joinRoom,失败后再 createRoom。
非常感谢您的反馈,多层(3 层以上)嵌套的属性确实是一个 bug。 现已修复,请再次尝试。
可以在 android 工程里设置「信任 http」,搜索一下
参考一下
SDK 已更新。 也可以更新 脚手架工程
请打开日志看一下异常信息。 一般 android 平台要注意「是否打开了网络权限」,「是否有 http 请求(android 高版本默认只允许 https 请求)」
the_student_of_Canag: DescriptorValidationException 从日志上看应该是:协议代码打包时被 strip 掉了 我在 Play-Quick-Start-CSharp 测试了一下 android 打包是正常的,您可以下载并参考一下配置。
我又查阅了一些资料,这个问题应该是 IL2Cpp 编译过程中,将没有直接用到的类型(例如 Protobuf 协议)strip 掉了。 所以需要静态指定一下「要保留的 Assembly」link.xml,我已经在 Play-Quick-Start-CSharp 中更新。 参考资料 后面我会在发布 SDK 时直接加入这个配置文件。
您好,之前的 SDK 确实存在上传文件异常的 bug。 这个 bug 在 这个版本 已修复 请更新 SDK
非常感谢您的反馈,确认是 Unity 在「国际版」的 bug。 已修复并发布 新版 测试用法: AVClient.Initialize(appId, appKey); FileStream fs = File.OpenRead("hello.png"); AVFile file = new AVFile("hello.png", fs); await file.SaveAsync(); Debug.Log($"url: {file.Url}"); 输出截图: image.png 1566x494 78 KB
你好, 在设置完 CustomRoomProperties 后,属性会存放在 Room 中,但是不会暴露到大厅里(考虑到同步的开销),如果需要在 Lobby 中访问(或匹配),请在 RoomOptions 的 CustoRoomPropertyKeysForLobby 声明出要暴露的 key。 示例代码如下: RoomOptions options = new RoomOptions { CustomRoomProperties = new PlayObject { { "owner", "123" } }, CustoRoomPropertyKeysForLobby = new System…
请粘贴一下出错的代码
非常感谢反馈 确认是连接时的 bug 并修复,请下载 新版 SDK
henry3158: sendmessageasync()连续发送消息正常,但间隔半分钟之后再发一条,会显示错误码SESSION_REQUIRED,用createconversationasync()创建的对话,对话链接中断频繁,文档上说明需要open session,请问一下C#版怎么去做,没找到相关接口 如果连接断开,会有对应的「断线事件」 请粘贴一下相关日志,用于排查发送错误的原因
这个代码没看太明白。 是每次发消息都重新创建了 client,conversation 吗? 另外,SendMessageAsync() 既然 await 了,就不用再 ContinueWith() 了。 方便的话,可以上传一个示例工程我来看一下。
一个客户端最好是一个 AVRealtime,一个 AVIMClient,进行消息的发送和接收。 上述代码中 continueWith() 会导致回调不在主线程,需要提供 TaskScheduler 才能返回主线程。 RTM 服务启动后,如果出现断线情况,会自动重连。 可以尝试根据文档编写一个最简单的复现问题的 demo,也可以简化使用用法,排查错误。
Client A 和 Client B 是在一个客户端进程中创建的吗?
目前 SDK 不支持多用户,请在一个进程中只有一个 Client。 可以通过打包和 Unity Editor 互相发消息。
tom.GetChatRoomQuery() 是获取 tom 的查询对象。 一般一个公会会有自己的聊天频道(聊天室),可以将这个聊天室的 ID 记录到「公会」数据中,加入公会之后,根据聊天室 ID 加入到聊天频道。
这个问题我确实没有看明白。 在收到的消息对象中,是包含会话 ID,发送者 ID 等信息的。
目前 Play 房间最大支持人数为 10 人。 如果以王者荣耀为例,一般采用「方案 2」,也就是「帧同步」方案。
Flutter SDK 目前正在开发中, 存储 SDK 已发布
请问在断开之前有什么错误日志吗?
我测试了一下,每 3s 修改一下房间属性,并在小米 Max 手机上运行了,并没有出现你描述的情况。 下面是我的测试代码: // Start is called before the first frame update async void Start() { // 设置 SDK 日志委托 LeanCloud.Common.Logger.LogDelegate = (level, log) => { if (level == LeanCloud.Common.LogLevel.Debug) { Debug.LogFormat("[DEBUG] {0}", log); } else if …
1,现在房间是没有接口主动销毁到吗,比如我是房主,我退出就相当于解散房间 目前房间销毁策略是「房间里没有人」的情况下,由服务端销毁。客户端只能选择创建,加入,离开,并没有主动销毁的接口。 2,unity现在avobject子类化使用起来不太方便,因为一般是player用户数据,很多用户属性,每一个属性都要加标签和重复到getset,要么你们把SubclassingController.GetPropertyMappings开放自定义,要么用cecil自动注入setget代码 这部分算是存储 SDK 做的工作,我目前正在重构。 关于子类化这部分,我这边的初步考虑的方案是:只设置类名 / 构造方法…
sunxinzhe: 1,可以开放这个接口吗,因为大部分实际房间游戏还是有这个需求的,房主由创建人所有,房主不在,房间销毁,可以交给开发者自己定义,更灵活 这个实现的目的在于让开发者少关心一些细节,如果由开发者决定是否销毁,可能由于疏忽会导致很多资源浪费。开发者可以认为房间里没人了,这个房间便销毁了。 sunxinzhe: 3,既然您在重构,我顺便说说另外一个问题,就是序列化的设计https://leancloud.cn/docs/multiplayer-guide-csharp.html#hash23935662,初衷是好的,但是你们现在要序列化一个自定义类很麻烦,那个解析实例看起来都头大,…
sunxinzhe: 1,少关心细节是对的,如果是担心资源浪费,可以兼得,你们现在的机制保留,没人的时候自动销毁,有人的情况提供一个主动销毁的机制,其实会更节省。关键是这个需求是实际项目中必须要有的,因为只是房主退了,房间还有别人,方案设计上一般是会要销毁并告知其他玩家,房间已解散,往斟酌下 我不是很理解你们的需求,有人的情况下,为什么要销毁房间呢? sunxinzhe: 2,我现在就是这么干的,自己new了一个playerobject["data"]=序列化对象,但仅仅用在sendevent上,在房间自定义属性和player自定义属性上没敢用,因为如果包一层data,那就是一个属性了,其中一…
sunxinzhe: 1,比如一些聚会游戏,很多计算逻辑是在房主端进行,比如收集其他玩家信息,下发关键信息等,房主是这个房间的核心,房主不在,游戏是进行不下去的,即使切换房主,那这些数据转给新房主复杂度更大,所以一般采用房主不在,解散的模式,如果实在不方便,我只能绕道解决了,就是如果其他人收到房主离开,那leave,也能解决,就是别扭。 这个需求可以尝试我们的 Client Engine 服务,即房主运行在 LeanCloud 服务端,尽可能保证房主不掉线。 参考文档 sunxinzhe: 2,我说的方案跟你说的“如果在 PlayObject 里只存放一个 string/byte[],开发者侧…
请通过 LCLogger.setLevel(LCLogger.DebugLevel); 查看一下请求日志
需要在初始化 AVRealtime 之前先初始化 AVClient,参考代码如下: var appId = "xxx"; var appKey = "yyy"; var server = "https://zzz.lc-cn-n1-shared.com"; AVClient.Initialize(appId, appKey, server); var realtime = new AVRealtime(new AVRealtime.Configuration { ApplicationId = appId, ApplicationKey = appKey });
请确认 headerurl 是否「有值」。 如果没有设置默认值,请先判断是否为 null,再获取。 本质上 AVUser 就是用一个 Dictionary 保存了各个字段。
好的。 像类似问题可以通过打开日志,看下 http 返回的数据是否符合预期
https://leancloud.cn/docs/sdk_setup-dotnet.html#hash7247859
请问是哪个 SDK?还是 REST API?
请问是否开启了「短信验证码」服务? 参考文档 可以参考仓库下的 单元测试
这是 单元测试 ,可以作为使用参考 这里有个 简单的适配 Android 和 iOS 的 demo
嗯,今天我这边也对比了一下 flutter 和其他 SDK 提供的功能,在「短信」和「验证码」这里确实有些接口没有实现。 现已加入 Flutter 短信和验证码相关接口 但遗憾的是,Flutter 新版的 pub 工具有问题,导致无法发布,我们会在近期发布新的版本,到时候会把进度同步到这里。 感谢关注!
已发布 0.2.3 版本。 更新日志 感谢关注!
参考 这个
这个错误没有看到 Play 相关的报错。 参考一下引入方式: image.png 2570x2002 618 KB
不太确定。 可以尝试在空的工程里引入试一下。
在美国节点上确实存在这个问题,请使用下面的代码进行初始化: AVClient.Initialize(new AVClient.Configuration { ApplicationId = "xxxx", ApplicationKey = "yyyy", Region = AVClient.Configuration.AVRegion.Public_North_America });
我们近期会发布新版的 SDK,将省去配置 Region 的步骤。 可以 关注一下 更新: >= 0.2.2 的版本无需配置 Region。
非常感谢您对 LeanCloud 的支持。 后面我们会考虑将 SDK 发布到 Unity Asset Store 的。
jevin05: 问题1:请问客户端发送数据后,如何获取到消息状态已发出的状态client.OnMessageDelivered = (conv, msg) => { Debug.Log("OnMessageDelivered "+msg); }; LCIMMessageSendOptions options = new LCIMMessageSendOptions { Receipt = true }; await conversation.Send(textMessage, options); 在哪里能找到回执呢? 如果是OnMessageDelivered接收回执。但后台已经收到数…
jevin05: 问题1: 想取到发送成功的消息,问题就是OnMessageDelivered 没响应 取不到,LCLogger倒是打印了客户端=>服务器的 数据.. 在接收方打开日志看一下,确定是没有收到消息,还是没有回调 jevin05: 问题2: 想取得后台所有的群聊 的列表 (不是聊天记录,也不是只有) 问题2的原因是:想要实现一个 聊天室列表,进入聊天室可以看到成员列表(成员列表如果用直播聊天的功能无法实现,所以考虑能用群聊来实现这个聊天室) 上面提供的链接就是「对话查询」(聊天室属于一种特殊的对话)
这里 会实现一个 Unity 下使用 SDK 的快速入门,我最近会慢慢把它补充完善。 现在已经有个简单的世界聊天功能,你可以先参考一下。
OnMessageDelivered 就是在接收方接收后的回调事件,我在 demo 仓库中增加了私聊的示例,你可以看一下
你好,我这边又完善了一下 Demo ,包括常用的世界频道,行会/组队频道,私聊等场景,并有对应的 readme 介绍,可以参考一下。 有问题可以在论坛或者 issue 中提出。 感谢关注!
jevin05: 1:LCIMConversation中的name字段没有在_Conversation找到相应的字段信息。 这个本身是用来干嘛的? name 就是对话的名字,属于对话的属性,不强制要求,你可以在创建对话时指定(如果指定了没生效,请下载最新 SDK v0.4.3 ) jevin05: 2:LCIMConversationQuery只能查询user已经加入的对话组(群聊,非聊天室), 我想查找的所有对话组,包括了user没有加入的。。 _Conversation 也是一个表,所以也受「权限」限制,默认是没有 find 权限的,如果有需要,可以打开
你看 demo 中查找行会对话的示例
抱歉 C# 这里的示例代码不太对,应该是 dongGuan.province = GuangDong,代码应该是 AVObject dongGuan = AVObject.CreateWithoutData("City", "56545c5b00b09f857a603632"); dongGuan.FetchAsync(new string[] { "dependent" }).ContinueWith(t => { var province = dongGuan.Get<AVObject>("dependent"); var name = province["name"];…
怎么获取都可以。 但把 id 硬编码到代码中,肯定不是好的选择。 这里只是示例,主要说明可以根据 className + id,通过 fetch(keys) 接口拉取「对象的部分数据」,而不必拉取对象的全部数据的场景。
建议还是相同的版本,小心发布时会有接口不兼容
你好,如果是新开发者,欢迎使用我们新版的 SDK。 仓库地址 ,请到 releases 里下载所需服务的 SDK,Unity 用户请下载「以 -Unity 结尾的库」即可,解压后即 Plugins 文件夹,拖拽到 Unity Editor 里即可。 CSharp-SDK-Unity-Demo 仓库是基于新版 SDK 写的 Unity Demo,包括用户登录,对象存储,排行榜,聊天等示例,可以参考一下。 邮箱验证示例代码 SDK 工程都有相对于的单元测试,可以当做用法示例参考。请参考 README
我们的 SDK 是基于 .net standard 2.0 开发的,所以是符合 .net standard 2.0 标准的。 Unity 中提到的 .net 4.x 应该是 .net framework 4.x 版本吧? .net standard 2.0 应该是更普遍的标准。
JSON.Net 库的官方 Nuget 的 .net standard 版本,会有一些特性是 Unity iOS 不支持的,所以换了一个其他版本的 JSON.Net 库。 这个不需要开发者关注,适配的问题 SDK 会保证的。 如果只是使用 SDK(不自行编译)的话,只需要在 releases 下载对应的库即可
111974: (1)我该如何简单的获取到这个值的信息呢? 查询代码参考 111974: (2)此外,如果我GetValue方法的返回值类型如果不是void而是Tast,外部该如何调用呢, 这是 C# 语法的问题,可以了解一下 .net 的 TPL 方式。 一般推荐是 Task GetValue() 这种格式。 111974: (3)如果我要update这个属性该怎么写呢 更新属性代码参考 每个服务都有对应的单元测试工程,很多用法都可以在其中找到,如 Storage.Test
111974: 1)、我在使用命名空间using NUnit.Framework;时会提示错误,我猜可能缺少文件包。 这个是单元测试框架,开发者在使用 SDK 时不需要导入 111974: (2)、页面里的方法,对于第一次接触的人来说,如果只从字面上理解我担心会错误,如果能给些注释就好了。 这里有份 API 文档
111974: a)我在旧版本的说明中看到,如果我查询一个对象可以用如下表达方式AVQuery query = new AVQuery("GameEquip");AVObject equipment = await query.GetAsync("5c4147887565716f2485fc89");Debug.Log(equipment.ObjectId); (b)但是在unity新版本的sdk中,我尝试用GetAsync,发现没有这个方法。 image.png744x120 32.2 KB 以前的 SDK 为了区分同步和异步接口,为异步接口增加了 Async 后缀,新版 SDK 都是异步接…
子类化查询单元测试 111974: 4、此外不知为何,返回的时间差了8小时,是否与时区有关系? 这是时区的问题,SDK 直接返回了 utc 时间,是 SDK 的 bug,下个版本会改为本地时间。
目前还没有
111974: (1)说明文档中所提到的错误对象,我该如何获取到; (2)如果我获取到了错误对象,我该用什么属性访问到错误编码以便于我针对不同编码给用户不同的ui反馈 通过 try {} catch (LCException e),LCException.Code 即可得到错误码 111974: (3)如果我的user是用邮箱登录,没有填写手机号码,那么是否会如开发指南中所描述的那样,手机号为空了会判定位重复呢? 「空」不是重复 111974: (4)邮箱如果验证成功了会有返回码么?我该如何获取到呢? 邮箱验证一般是在网页中进行的,验证成功后再到登录页面登录
LCException
请打开日志,粘贴一下请求和应答的详情。 或使用 新版 SDK ,这里有使用 Unity Demo
这个问题比较有趣,我们之前在写 demo 时也遇到过。 排行榜服务没有提供对应的接口或配置。 我们之前是这样实现的:在分数中增加时间元素。比如: 2020-6-1 A 玩家得了 100 分,那他在排行榜的分数为 100 x (10000000000000 - 2020-6-1 时间戳) 2020-6-2 B 玩家得了 100 分,那他在排行榜的分数为 100 x (10000000000000 - 2020-6-2 时间戳) ... 2020-6-1 时间戳 < 2020-6-2 时间戳,所以 A 的分数 > B 的分数。 PS:在 UI 显示的时候,可以将排行榜的分数 / 100…
参考代码: LCLeaderboard leaderboard = LCLeaderboard.CreateWithoutData("Leaderboard_157"); await leaderboard.Fetch(); int lastVersion = leaderboard.Version; WriteLine($"last version: {lastVersion}"); ReadOnlyCollection<LCRanking> rankings = await leaderboard.GetResults(lastVersion); foreach (LCRank…
已在 qq 群中沟通
请把错误信息粘贴一下
在上传回调里,将 3 个上传任务的进度值求和,除以 3 就是总进度的百分比吧
SDK 没有显示功能,至于如何显示应该和你们的逻辑相关。 你提到的「导致不能正常显示」我也不清楚是错误的显示了什么。不过看这句代码 number+=number//累加 应该会在每次进度回调时都加一次进度(会导致超过 100 吧?),但是也不知道第一个 number 又是什么呢?实在无法回答。 请尽量将问题描述清楚。
用两个 Map,分别为 <图片 id,当前进度> 和 <图片 id,总进度> 每次上传回调找到对应的当前进度,并更新 将「当前进度求和」做分子,将「总进度求和」做分母
云引擎和 SDK 的语言是无关的,只要 SDK 支持云引擎,云引擎可以使用任何支持的语言。 用法可以参考这里的 单元测试
ACL 是根据请求时的用户身份鉴别的。 seast19: 想问一下使用restAPI时,是否不受ACL控制 如果想拥有超级权限,即忽略 ACL,可以使用 Master Key, 参考 ,但不建议在客户端使用 seast19: 或者说使用restAPI时,该次请求是属于某个''用户''? 用户是根据请求中的用户的 session token(即 headers 中的 X-LC-Session)确定的,可 参考
粘贴一下日志中的请求和应答
artsungames: initNorthChina initNorthChina 这个方法是在集成测试里用的,并不是 SDK 提供的。 如果想跑集成测试,执行 test.sh 即可
@leeyeh
我在第二次登录的时候查询这条表需要objectID,但是我如何知道这个ID是多少?? 可以在保存之后将这个 Id 持久化到本地 比如我怎么才能让objectid是我的用户名?? objectId 是由后端生成的唯一索引,不能自行指定
一般情况下是不需要「单独保存 objectId」的。 我看你提到的上下文,是在登录后创建的对象,如果这个对象和用户有关联,可以通过将 User 的 pointer 指针指向这个对象。 这样,只要保证用户可以登录,即可拿到这个对象。
API 调用是指对于数据库的操作 图片资源是在七牛上,单纯加载图片不会占用调用 API 调用,但是会计算流量
是的。 具体费用可参考「文件存储」价格
LCException 是 SDK 定义的异常类型,可以看下具体的 code 和 message
另外,之前 SDK 可能在 Object 关联 File 时,保存时有 bug。所以请确认 SDK 是最新版本 0.4.1 我这边模拟你那边测试了一下是正常的 LCFile file = await LCFile.fromPath('avatar', './avatar.jpg'); LCObject obj = new LCObject('FileObject'); obj['file'] = file; String text = 'hello, world'; Uint8List data = utf8.encode(text); LCFile file2 = LCFile.fromBy…
LCFile 是子类化的 LCObject,上传成功后,可以通过 LCFile.url 获取图片。 至于如何显示,可能要看具体的显示组件使用方式。
参考一下 文档 include 方法即可拉取 LCFile 对象的完整数据。
感谢反馈,现已在 v20200729.1 中修复。 另外,我们使用 .Net 新的接口标准(.Net Standard 2.0)开发了 新版 SDK 。 可以关注一下。
请使用 dig 命令看下 cname 解析是否正确
你好,是由于我们上游 DNS 解析有些问题导致不能正确解析。 现在已经正常了,请刷新看下。
请把请求的日志打印出来看一下。 应该是 dio 更新了 breaking changes 的版本。 目前 SDK 用的 dio 是 3.0.8
是的,这个原因是 Dio 发布了小版本,但是却做了 Breaking Changes。 所以,我们更新了 v0.4.3 SDK ,这个版本固定了 Dio 在 3.0.8
是否使用了「查询策略」? 如果不需要缓存,可以不设置 queryCache, 参考 另外,请注意语言
我看了一下这个问题,是由于「存储 SDK」升级(国内强制使用自有域名)导致的。 所以,目前最快的解决方案只能通过「降级」云引擎库解决,比如 2019.6.4.9 版本。(或者使用其他语言的云引擎 SDK) 旧版的 SDK 对云函数返回的 Task 类型有些问题,我们将会在本月推出新版 C# 云引擎 SDK。
云函数无法调用异步查询,报错:请配置自定义域名 Bug 汇报 云函数调用查询的时候会报错:请配置自定义域名 我的后端设置里已经配置好了自定义域名,但是为什么一直说要配置域名 [图片] [图片] 会一直进入catch块
本主题已关闭,不再接受新的回复。
我也更新了一下 云引擎 SDK 但是旧版 SDK 不支持返回值为 Task 类型,所以代码要使用同步方式,需做如下改动 [EngineFunction("Hello")] public static string Hello([EngineFunctionParameter("text")]string text) { Console.WriteLine("call Hello function"); try { AVQuery<AVObject> query = new AVQuery<AVObject>("Hello"); Task<IEnumerable&l…
请提供一下 App ID
由于这个域名刚刚备案,所以备案查询还没有收集到,我更新了备案查询 API,目前看可以使用了。
请提供一下 appid
app id 发一下
4qi3v0uO8BSjy0P0dYWG8SMo-gzGzoHsz 华北节点 确定这个应用吗?看日志云引擎是启动成功的,报错是运行时错误
请问使用的是什么模板? 以及 appid 是多少
从业务角度来看,单纯以「段位」匹配可能并不太合适。 比如以 100 分为一个段位,其实 99 和 101 分的玩家水平是接近的;而如果以 10 分为一个段位,同一段位的玩家数可能太少,无法快速匹配成功。 以王者荣耀为例,他的排行匹配规则也不强制同一段位的,大概是上下一两个段位的玩家都有可能匹配到。
在 LeanCloud.Common 命名空间下。 可以把 https://github.com/leancloud/Play-SDK-CSharp 这个 SDK clone 下来,继承测试里有代码示例。
play 可以认为是 SDK 客户端实例, 不是 Room,也不是 Player。 play.on 相当于「事件注册」,事件可以认为是服务端推送给你的,所以可以在初始化完成后就注册。而创建/加入房间失败是作为「调用异常」反馈给开发者的。
这里应该用 client,而不是 play
对于接收端来说,事件都是顺序的。 SDK 不负责重传,对于断线重连的客户端,应该是先同步游戏快照,再在此基础上接收后续事件。
Close 是个异步过程,OnApplicationQuit() 不一定能够完成。 如果测试,可以用个按钮触发
client.OnXXX 是事件回调,看下集成测试
请提供域名或者 appid
总览的代码很久了,节后我来更新一下。 请参考 多人在线对战开发指南
新备案的域名同步到备案数据库有延迟。 现在可以了
601544679: 24PJDWahD7Pww2cDice6F6Er-gzGzoHsz 没有查到备案信息
可以了 新备案的域名同步有延迟
ixiaoyao: kE6lj9PrcUCJzmQ4Wnx42V2B-gzGzoHsz 现在可以了
刚刚看这个域名已经解绑了
请升级到 0.5.0
Please upgrade leancloud_storage to 0.5.0
我试了一下是可以获得 user 对象的 objectId 的 测试代码: LCUser current = await LCUser.loginByMobilePhoneNumber('15101006007', '112358'); print('user id: ${current.objectId}'); assert(current.objectId != null); 输出日志: 00:01 +0: user login by mobile *** Request *** uri: https://ikggdre2.lc-cn-n1-shared.com/1.1/login meth…
refreshSessionToken 是指什么? 默认请求中带的 sessionToken 就是当前缓存在 user 的 sessionToken
601544679: 比如我分别在2台设备上登录,首先在A设备登录,登录成功后刷新token,然后再B设备上登录,登录成功后也是刷新token,这时候再次打开A设备,会提示该账号已在新设备上登录 这个符合预期啊
601544679: 就调用sdk更新token 用什么方法更新的 token?
601544679: /1.1/users//refreshSessionToken PUT 重置用户 sessionToken。 通过 REST API 刷新 token,会使 SDK 中缓存的 token 失效,但并不会使用更新 SDK 缓存的 token 因为 SDK 无法感知 REST API 的调用
SDK 中使用的是 Dio 默认的超时时间。 如果只是针对某个接口,可以使用 Future.any(loginTask, delayTask) 做登录超时
key 是 string 类型;value 是支持 object 类型的
如果只是一个项目模板,看起来是正常的 image.png 2780x872 98.8 KB
是有限制的。 可能需要考虑的是游戏对战时的数据结构,比如整个棋盘是一个属性,而每个格子属于棋盘的成员属性。 另外,有些数据可能并不需要保存,比如即时性的事件参数。
嗯,从内存角度考虑,这里确实是有 1024B 的限制。 Player.CustomPropterties 也是
Wing_li: WCLr2BcTK1O2LH99MOJROgRk-gzGzoHsz 请问你想要的添加的 Object 类型是指 LCObject 还是 Map 呢?
嗯,那请不要设置 __type 字段即可,下个版本 SDK 会加限制
参考一下 这里
如果使用旧版的 SDK 是不支持的。 如果新版的 SDK 可以使用 LeanCloud.Realtime.LCIMConversation.Read() 标记已读 通过 LeanCloud.Realtime.LCIMClient.OnMessageRead 获得消息已读回调 新版 SDK 地址
加入对话 更多用法可以参考 集成测试
这个看起来是其他插件(Excel2ProtobufModule)与 LeanCloud SDK 的依赖(Protobuf)冲突。 如果这两个库使用的 protobuf 版本是一致的,理论上删除一个即可。 如果 protobuf 不兼容,则需要考虑适配一下,可以选择重新编译 Excel2ProtobufModule 或者 LeanCloud SDK。如果重新编译 LeanCloud SDK,则无法保证兼容性和稳定性。
如果是旧的 SDK,尝试在 AVIMClient 创建完成后,将 AVIMClient.CurrentConfiguration.AutoRead 设置为 false
请打印下接收消息后的日志,主要看下有没有「已读消息」发出
请选中发送「已读消息」请求的日志,看一下调用堆栈
这里 判断了 AutoRead = true 时会自动发送「已读消息通知」。 请在实例化 AVIMClient 之后,将 AVIMClient.CurrentConfiguration.AutoRead 设置为 false
Configuration 是 struct,请改成 ChatData.Ins.tom.CurrentConfiguration.AutoRead = false;
client.CurrentConfiguration = new LeanCloud.Realtime.AVIMClient.Configuration { AutoRead = false };
参考这里 AVRealtime.CurrentConfiguration.OfflineMessageStrategy = OfflineMessageStrategy.UnreadAck 尽快使用新版 SDK 吧
感谢反馈,这里确实应该先检测一下 SharedPreferences 是否包含 CurrentUserKey,再反序列化。 但是这里有 catch,所以会执行到 catch 块中,应该不会对程序运行造成影响(请帮忙确认这一点)。 稍后我会完善一下这里处理逻辑。
一般刚刚备案审核通过的域名「备案信息」同步会有延迟 目前正常
可能是备案掉过? 目前已正常
我的意思是 SDK 已经 catch 了这个异常,理论上你不需要再 catch 就可以得到的 currentUser = null 的
断点是指在 debug 模式下吧?这个和工程配置有关系。 把 Exception Breakings 下的断点删了就行(另外我们也会在下个版本修复这里)
下个版本将支持通过 global.json 指定 .Net SDK 版本
感谢建议。 API 设计主要是两方面的原因: 1. 希望和其他语言的 API 保持一致 2. Unity 是否支持某些特性(大部分用户是在 Unity 下使用)
证书申请失败了,过会再试试
已确认问题,请稍等
我看了下后台的证书上传失败了,现在已经手动上传了,再试一下
这个可能要检查你的应用内部逻辑了。 https://leanapp.yjm-opensrc.xyz/1/ping 这个接口目前是正常的
近期备案通过的域名同步的有些慢,刚刚更新了,目前已经绑定了
最近备案的域名同步都有延迟,现已同步,请点击重试
CDN 服务商配置域名需要时间,可以等会再配置
感谢反馈的问题,现已修复,请尝试重新上传证书
image.png 2394x1010 312 KB 我这里看到是 2021 年了,应该是缓存
近期备案数据同步延迟比较大,现已手动更新,请重试绑定
1111003: aFh0Cw3LIHeRhh9vcjJIVWPx-gzGzoHsz 域名已正常。
file 域名已正常
感谢反馈,旧版 SDK 确实存在一个反序列化的 bug 导致的,稍后会修复并更新。 (新版测试是正常的,建议如果是新项目,请使用新版 SDK) yilumi: 不过我上次尝试c sharp版发现貌似本地无法记录登录状态。下次开启应用又要重新登陆。 这里是这样设计的,因为 SDK 目前没有任何平台相关的代码,具体做法就是保存好 session token,每次启动应用时使用 token 登录即可, 参考 后面如果有需求,会考虑通过插件的方式额外支持 Unity 平台的。 感谢关注!
建议还是使用新版 SDK,有问题欢迎发帖。 旧版 SDK 也修复了这个问题,感谢反馈!
是因为 5120h.top 在没有备案的情况下解析到下游服务器,导致的封堵(看备案通过时间应该是刚刚通过,应该是在重新备案过程中) 已与下游服务器厂商沟通,目前已正常。
域名未备案 image.png 2218x1614 646 KB
请贴一下请求和应答的日志
这个确实是新版 SDK 调整了 Get 接口的实现导致的,目前已在 0.6.4 版本中修复。 感谢反馈!
支持了,可以参考一下 这个工程 的配置
LE 签发证书服务有些问题,目前已手动签发
近期没计划,有什么特别的使用场景吗?
初始化只是设置 appid 和 appkey,不会有网络异常检查。 可以在「异步接口」处通过 try catch 到异常。
我的意思是应该在业务处进行 try catch 处理。 如果希望能单独确认访问 leancloud 服务情况,可以访问 https://{API-SEVER}/1/ping
应该用自有的二级域名
目前已正常
是的,目前 SDK 没有做 session token 的缓存。 所以,目前的方式是在登录成功后,将 SessionToken 保存至 PlayerPrefs;在下次登录时,调用 LCUser.BecomeWithSessionToken() 登录。
旧版是有的,新版目前是使用标准的 .net standard 2.0 实现的,所以没有 unity 相关的代码。 (不过最近在计划如何实现了) 1 请问Login或Signup如何得到session token呢 参考 这里 可以拿到 LCUser 的 SessionToken 2 ContinueWith由于不是主线程,很多Unity的API是无法使用的。 强烈建议使用 async/await 方式,一是在 await 之后还会切回主线程;二是可以避免嵌套太深,不容易阅读。
错误处理参考 try { LCUser user = await LCUser.Login("username", "password"); // 成功 } catch (LCException e) { // LeanCloud 错误,如密码错误等,参考错误码 } catch (Exception e) { // 其他错误,如网络异常 } IsAuthenticated 的作用是检查 session token 是否有效,Login/Signup/BecomeWithSessionToken 成功后的 session token 一定有效的,不需要再判断。 后续支持了本地持久化 sessio…
我们在 0.7.3 版本支持了 Unity 本地缓存登录用户数据功能
需不需要验证 IsAuthenticated 是看应用的需求的。 缓存 User 的数据的目的是,在离线或启动时就能拿到 User 数据。而具体 User token 是否过期,或者说应用对 token 过期是否敏感,是要看应用的需求的。
在 0.7.2 及以后的版本,SDK 通过源码方式引入了第三方库(并修改了命名空间)。 所以,如果有使用到相同的第三方库,直接引入即可,不会与 SDK 的依赖库冲突。
请先 clone SDK 仓库,然后以「工程」方式引入,再手动修改版本号进行适配。 预计 SDK 下个月会发布升级依赖的版本
下载也可以,SDK 引入的方式改成「相对目录」,应用的 pubspec.yaml 配置如下: dependencies: flutter: sdk: flutter leancloud_storage: path: ../Storage-SDK-Flutter
参考一下 这里 ,相对目录(相对于应用的目录)也是可以的
如果是 ../Storage-SDK-Flutter 是和应用同级目录,这里就是相对于 pubspec.yaml 的目录
目前已正常。 是由于 CDN 域名服务商创建域名异常导致。
请提供一下域名或者 app id
看起来是 Dio 的适配问题,LeanCloud SDK 并没有对 PC 平台做过适配,目前只支持 Android,iOS
看起来像是权限问题, 参考一下
这是服务端断开了连接(刚刚域名解析有点问题,不确定是不是这个原因) SDK 应该只是打印了日志,应该会有执行「重连」逻辑 如果需要监听网络断开事件,可以注册 LCIMClient#OnPaused,LCIMClient#OnClose 回调
suchuan: WhereStartsWith 卡住过程中有什么日志吗? 「自己好了」是有重启应用吗?
已知上午 11点多的时候有一段解析错误,可能造成了一些影响,和发帖时间接近。 如果是其他时间段有错误,还请保留下当时的日志分析一下。
看了下域名在 CDN 服务商解析有问题,我们正在和他们沟通,请稍等
域名已绑定
参考 这里 引入 Null safety 版本 SDK
await 至少是需要有 async 声明的
我不确定 Dart 语法是否允许在「函数体外」写逻辑代码。 你把代码放在函数体里试试
这里 有支持 Flutter 2.0 的版本,Dio 版本也对应升级到了 4.0.0
SDK 有依赖 shared_preferences,报错信息大概是没有找到 getAll 方法。 可以确认一下是否是项目的 shared_preferences 依赖与 SDK 的依赖版本不一致导致
joycor: leancloud_official_plugin leancloud_official_plugin 应该没有依赖 shared_preferences。 可以需要在你们的项目中看下 pubspec.lock 中其他库对 shared_preferences 依赖是否正常。
你把 sdk 中 shared_preferences 的 版本 设置太高,旧的接口很有可能不支持
这种项目的依赖问题可能需要开发者来排查一下,因为不同的项目冲突的情况也不一样。 建议可以在一个新的工程里,【逐步】引入目前你们项目的需要的依赖,先能准确定位问题。 根据前面的描述,我猜测是在 shared_preference 的 Android 实现上有缺失。可以尝试反编译一下对应的 jar 包,以及对比一下正常版本的 jar 包。
看这个应用已经被删除了
目前看域名是绑定正常的。 如果配置 cname 比较及时的话,整个过程大概在 30 分钟左右
现在看是正常的
当前的连接是已经登录成功的状态吗? 异常抛出后没有触发自动重连吗?
后面两个红色异常是在断线过程中发送消息时抛出的,这个应该由开发者捕获处理。 但以 目前的处理 ,在接收异常时会关闭 Socket,并触发重连。 有能复现的规律或者场景吗?
有没有断开异常后的日志
GitHub 仓库 迁移 Null Safety 方案
OnClose 和 OnPause 还是有区别的: OnPause 与 OnResume 是对应的,在 OnPause 之后,SDK 会一直尝试重连,直到成功后回调 OnResume; 而 OnClose 则表示被服务端踢掉,或者只允许一台设备登录(被顶掉),这种情况下 SDK 是不会重连的。 所以,需要看一下当前状态是走到了哪一步,要日志的目的也是要看下 SDK 有没有尝试重连。 还请再复现这个问题的时候,希望能多提供一些日志来分析。
看图一是有执行到 SDK 捕获 receive 异常的,图中的日志就是 捕获后 打印的,看后面的执行逻辑是会重连的。 如果再复现这个问题,请在图一日志后继续收集日志,看重连有没有执行,以及有没有重连失败等信息。
访问 lets encrypt 不稳定,目前已正常
访问 lets encrypt 不稳定,目前已正常
没看清楚问题是什么? type=-3 表示是音频消息,并且多媒体消息【都可以】附加文本的
用 type 判断也是可以的,SDK 会反序列化成具体类型的消息,所以你现在根据类型判断的方式也没问题。(看 Unity 日志也有 audio type) 所以没明白具体遇到的问题是什么
是这样的,多媒体消息在代码上是继承文本消息的,所以如果要区分消息类型,要【优先判断子类型】 例如 这里 会先判断 ImageMessage(另外提醒一下,需要在判断时加上 else,因为一条 AudioMessage 既是【音频消息】,也是【文本消息】类型)
目前我们提供的共享域名有些问题,xxx.cn-n1.lcfile.com 需要绑定你们自己的文件域名,并设置后即可访问
参考 这里
可能是备案掉了,联系一下备案服务商吧 image.png 2402x1792 682 KB
可以,但不能保证可用性
没看到什么错误
云引擎本地启动也需要配置环境,所以需要使用 lean up 来配置并启动
使用 lean up 启动,通过日志调试
看这个错误像是连接 Lets Encrypt 服务有问题
初始化时调用 LCApplication.UseMasterKey = true;
LCApplication.UseMasterKey = true; 放在 LCEngine.Initialize(services); 之后是没问题的,但是看日志输出是有问题的,如果使用 MasterKey,则会有 X-LC-Key: xxxx,master 的 header
嗯,云引擎也是基于 LeanCloud 存储的,所以使用 MasterKey 的逻辑是一样的。 请下载 最新版本 SDK 试一下。
附件是我刚刚测试的工程,没能复现你描述的问题,你可以试下 dotnet-core-getting-started.zip (4.0 MB)
云引擎使用了 CDN,缓存规则为【遵循源站】,请在源站中设置缓存策略。
kangbin: sUeKmSzCWClqrC4PGVgIH8gt-gzGzoHsz 已绑定成功
请粘贴一下红字异常的堆栈
这个异常是因为【并发】调用 ClientWebSocket#SendAsync() 导致的。 请确认目前的用法有没有在多个线程中调用 SDK 接口呢?
不是指发送消息的 Send() 可以认为即时通讯 SDK 中的所有返回值为 Task 的接口都会调用到底层的 ClientWebSocket#SendAsync() 请问目前的用法中有调用返回值为 Task 的接口,却没有 await 的地方吗?
能否提供一个最小复现这个问题的 demo 或者步骤,我这边也复现下
请提供 appid
因为云引擎默认使用了 CDN, 参考
我这边看 API 和文件域名都是正常的
user521: 等了两小时直接给我报失败,今天8月19 请提供 appid
你好,CDN 服务商暂不支持中文域名,所以无法签发证书
目前确实会忽略掉嵌套 LCObject 对象中的自定义字段,下个版本将修复这个问题。
你好,在 0.7.3 中修复了这个问题。 感谢反馈!
已经绑定成功了
目前暂不支持 NuGet 安装。 请参考 示例 中的用法,通过引用 dll 的方式使用。
应该是备案信息还没有同步到底层云服务商处 http://db.snh48.shop/1/ping
尝试通过 WebSocket 并发发送数据复现了这个问题,之前 SDK 处理的方式不太合适, 0.9.7 修复了这个问题。 非常感谢反馈问题!
因为 Unity Editor 和 App 的区别是 Editor 关闭并不会杀掉进程,所以 SDK 还会继续。 如果希望 Editor 暂停时关闭连接,可以在 Unity 的生命周期函数 OnApplicationQuit 中调用 LCIMClient#Close()
音频消息分为两步: 先上传音频文件到 LCFile 将 LCFile 作为消息内容发送出去 第一个红框部分是请求上传文件的 token;第二部分是 RTM 发送消息。中间部分就是在上传音频文件(花费的时间可能会比较长)
看你在腾讯云配置的 CNAME 记录,在 LeanCloud 这边应该绑定的域名是 blog.liuyufeng.top
文件域名需要先确认【不再使用】后才能解绑,在 文件 -> 设置中将文件域名指向其他
云引擎和文件域名解绑后需要等**半个小时**左右再重新绑定,因为存储服务商删除域名有延迟。 可以先删掉等半个小时后再绑定
绑定时控制台有 CNAME 提示
每个应用的 CNAME 都是一样的,可以先临时绑定域名看下 CNAME 商用版免费赠送独立 IP;开发版如果退回了独立 IP,也不会再收费
请粘贴一下这个请求的日志
@cuiyiran
更新成绩 只能更新当前登录用户的,而 entity 不属于当前登录用户,所以返回错误。 可以通过配置 MasterKey 初始化,并调用 LCApplication.UseMasterKey = true; 开启 Master 模式。 如果考虑安全因素,也可以通过云引擎更新成绩。
已绑定成功
嗯,这样确实更合适,将在下个版本调整。 感谢反馈!
SDK 没有做流量方面的限制。 首先要确认云引擎是否处于休眠状态(免费版有休眠限制) 另外要确认下访问的网络延迟情况
已在工单中跟进
在 0.10.0 中完善了 LCException
目前 leancloud_storage 最新版本为 0.7.6,其中包含 LCFriendship 类
SDK 不支持离线状态的 Save 和 Delete,看日志抛出了异常,可通过捕获异常做业务处理。
是 dio 的网络异常,不是 LCException image.png 1856x1534 544 KB
LC SDK 依赖了 dio 库,但对于一般的网络异常,LC 没有再转换成 LC Exception 返回。 所以,可以认为 LCException 属于业务异常;dio Exception 属于一般异常。然后在业务侧做出相应处理。
971586331: {"code":128,"error":"Relation data must be less than 100."} 这里是报错信息
请问是如何执行保存在本地操作的? LCObject#save() 只会将之前修改过的字段保存至服务端。如果没有修改过,也有可能 data 为空
可以参考 这里 的解释 预期这里应该抛出 LCException,帖子中描述的【卡住】不清楚是什么状态。如果可以稳定复现,可以提供一个最小可复现的 demo 我这边试一下。
请问 SDK 版本是多少?能否提供一个可以复现的 demo 或者代码段呢?
只有在 save 成功后才会 merge 数据 ,所以第一次失败了,应该还保留着之前的修改。 可以 debug 看下第一次保存失败和第二次保存之间,哪一步导致 LCObject._operationMap 被清空了
cushmily: URL: https://setio.skyrimwu.cn//1.1/login 看起来像是初始化的 url 结尾多一个 '/'
请粘贴一下请求和应答的日志
内部沟通了一下,Flutter SDK 的实现是直接将当前值(即修改后的值)做了序列化,而没有序列化修改的信息(即 operationMap 为空),所以反序列化时就丢失了修改的信息,从而导致修改信息为空,save 时的 data 也为空。 下个版本将会修复这个问题,感谢反馈!
cname 配错了
不是 . 的问题,dig 域名和推荐 cname 比对一下就知道了
修改 cname 不会立即生效的,现在看已经好了
预计下周可以发布
先在 fix-serialization 发布了,如果有需要可以先通过 git url 方式引入
AddAddtionalHeader() 是 SDK 内部用到的补丁方法,建议不要使用。 可以考虑在应用启动的第一个请求,去和云函数中做一个版本比对,如果不通过,则在客户端禁止后续操作。
https://api.yoyochat.cn/1.1/classes/user_information?skip=0&limit=10&where={"$and":[{"location":{"$nearSphere":{"__type":"GeoPoint","latitude":31.239533,"longitude":121.478408}}},{"user":{"$nin":null}},{"interest":{"$in":["英雄联盟","剑网3","王者荣耀"]}},{"user":{"$ne":{"__type":"Pointer","className":…
请问使用的哪个版本 SDK? 自动重连是在已经连接成功的前提下的,请问是否已经连接成功后没有重连呢?
日志的请求头里可以看到版本信息
请检查一下域名解析(目前看是没有解析的)
可以对没每个 LCLiveQuery 对象调用 Unsubscribe() 方法取消订阅,暂时没有取消所有订阅的接口。 SDK 会在断线重连后重新订阅,所以不需要业务侧特殊处理。 如果有很多相同条件的订阅,需要排查是否有 bug
请问运行环境是什么? 方便提供一个可以复现问题的文件吗?
这个视频文件下载不到
嗯,flutter 这边确实是直接上传的。 稍后我看一下
在 0.7.8 中已支持
卡在 CDN 服务商(七牛云)侧了,正在与他们沟通
七牛云反馈贵司的域名在阿里云配置过,所以无法进行二次绑定 建议使用新的域名绑定,或者先在阿里云删除后再绑定
七牛云反馈当前域名在阿里云 CDN 处有配置残留,需要你们清理。
在 LC 绑定域名时,LC 会在七牛创建这个域名,所以和你之前在七牛创建的域名冲突了
vibezone: J1zif7whWM9UAfWf1KFV9F5Q-gzGzoHsz 不用提前在七牛侧创建域名,直接在 LeanCloud 绑定即可
嗯,或者绑定一个新的
这个报错是七牛返回的,应该也是之前在其他账号绑定过了
你直接在 LeanCloud 绑定一个 xxx.vibezone.cn 就行了,不用考虑七牛
七牛工单反馈 xxx.vibezone.cn 在其他账号下创建过了,可以尝试把 xxx 换成其他
您好,核实是有其他账号下有创建过.vibezone.cn,这个泛域名 域名在其他账号下创建,会导致当前账号下创建失败,域名找回操作有两种: 1.系统自动找回,参考图文操作文档:https://developer.qiniu.com/fusion/manual/5857/the-domain-name-back 2.人工找回,您可以将您的任意一个二级域名解析到 qiniu.com,然后提交给我们确认后,我们手动帮您过户到当前账号。 注意:每月1-3号为出账期,不支持域名过户。 七牛云的回复
这种错误一般是上传失败导致的。 请问上传的文件有没有什么特点?比如格式,大小等 另外上传过程中有错误抛出吗?
可能和大小有关系,C# SDK 目前采用的是直传的方式,可能需要调整为分片上传的方式。 稍后我会调查一下这个问题
感谢反馈,已在 0.10.3 版本中修复
查不到备案信息 image.png 2252x1714 543 KB
能提供一下查询的日志吗?
参考 这里 打开日志,把怀疑有问题的请求和应答日志粘贴一下
是说【写入值】和【读取值】不匹配吧?这个问题已经发现了,下个版本就会修复。 前面提到的【倒退 100 年】是指什么情况?
目前已知的是写入日期类型的字段精度会导致数据有问题,稍后将会发布一个版本修复这个问题。 不太清楚提到的老版本的问题是什么?能再测试一下吗?
非常感谢反馈问题,已经在 0.10.5 版本中修复 后续有问题欢迎反馈!
阿里云 CNAME 解析是可以的。 请确认这个域名没有在阿里云或七牛绑定过【加速域名】服务
已在工单中处理
CDN 服务商出问题导致创建域名卡住,现已切换其他 CDN 服务商,请尝试绑定新的域名
你们的域名没有做接入备案
theoractice: 2022-04-22T05:05:21.000 感谢反馈,已确认问题:当毫秒为 0 时,C# DateTime.ToString() 会省略掉【毫秒】部分,导致 SDK 与后端的通信格式非法。 会在下个版本中修复。
已在 0.10.10 中修复,感谢反馈!
LCCore 并不预期向开发者提供设置接口,调用生产环境应使用 LCCloud.IsProduction。 我没太清楚是什么问题?
看起来已经正常了
1)LCCore.UseProduction 这个Property到底有什么作用?既然已经有IsProduction,那这个Property还有存在的必要吗? LCCore.UseProduction 目前没用了,会在近期版本中删掉。通过设置 LCCloud.IsProduction 即可完成切换预备和正式环境的需求 2).Net SDK就算在Staging环境,Hook函数触发的还是Prod里面的Hook 没太清楚要 hook 哪些操作呢?
确认是由于 C# SDK 传递的 True 没有被后端识别导致的,将在下个版本修复 感谢反馈!
预计下周,届时会在本帖同步。
已发布 0.10.17 修复此问题
是的,Unity SDK 中用的网络库是 System.Net
我理解可以在服务端接入多人对战 SDK,根据规则在需要 AI 的房间实例化一个 Client 加入房间和真实的玩家比赛
设置属性为密文,客户端使用时先解密再使用 这种用法会失去一些匹配机制的作用