AnyChat技术支持论坛

标题: 客户端=>服务器发送消息返回值有关问题 [打印本页]

作者: cg0071    时间: 2013-12-30 15:54
标题: 客户端=>服务器发送消息返回值有关问题
var message = "test";
var errorcode = BRAC_TransBuffer(0,message);
客户端登录后,调用此函数,返回值208,
208的意思是没有登录,我刚刚登录,怎么会返回这个?
有可能是什么原因造成的?

作者: 廖斌    时间: 2013-12-30 16:07
你好。返回208表示你没有登录成功。登录的过程是异步的,要收到OnAnyChatLoginMessage消息,并且dwErrorCode=0才表示登录成功
作者: cg0071    时间: 2013-12-30 16:25
登录成功了!
回调函数为:OnAnyChatLoginSystem(userid=255, errorcode=0)
登录后,中间不做其他操作,调用var errorcode = BRAC_TransBuffer(0,message); 时,返回值为0,正常
但是,我中间做了一步其他操作(一个按钮,弹出来一个j-ui-dialog对话框,之后关闭),
此时再调用var errorcode = BRAC_TransBuffer(0,message);就返回208了
IE正常,chrome、360异常
作者: admin    时间: 2013-12-30 16:44
难道是弹出来的对话框影响到了AnyChat DMO对象?尝试换一个对话框看看?
作者: admin    时间: 2013-12-30 17:21
您好,请提供一下返回208之后的日志文件,在插件安装目录下,谢谢。
作者: cg0071    时间: 2013-12-30 17:28
admin 发表于 2013-12-30 17:21
您好,请提供一下返回208之后的日志文件,在插件安装目录下,谢谢。

[2013-12-30 17:25:32(058)]        ---------------------------AnyChat Platform Core SDK Client Log---------------------------
[2013-12-30 17:25:32(059)]        Load BRAnyChatCore.dll success!(V4.8 Build Time:Dec  6 2013 09:34:01)
[2013-12-30 17:25:32(067)]        Load BRMiscUtil.dll success!(V4.8 Build Time:Dec  6 2013 09:32:21)
[2013-12-30 17:25:32(107)]        Load BRMediaUtil.dll success!(V4.8 Build Time:Dec  6 2013 09:31:58)
[2013-12-30 17:25:32(108)]        Load BRMediaShow.dll success!(V4.8 Build Time:Dec  6 2013 09:32:19)
[2013-12-30 17:25:32(110)]        Load BRMediaCore.dll success!(V4.8 Build Time:Dec  6 2013 09:32:39)
[2013-12-30 17:25:32(156)]        Invoke        BRAC_Connect(192.168.7.95,8906)=0
[2013-12-30 17:25:32(201)]        CheckClientSocketLink         Connect(ip=192.168.7.95,port=8906)
[2013-12-30 17:25:32(362)]        Server version: V4.8(Build Time:2013-11-28 17:10:56, Server OS:Linux)
[2013-12-30 17:25:32(593)]        Message        OnConnect(bSuccess:1, errorcode=0)
[2013-12-30 17:25:34(606)]        Check subscript, userid:225, times:10, video
[2013-12-30 17:25:37(724)]        Invoke        BRAC_Connect(192.168.7.95,8906)=0
[2013-12-30 17:25:37(733)]        Invoke        LoginServer(username=train06)
[2013-12-30 17:25:38(087)]        Message        OnLoginSystem(userid=256,errorcode=0,username=train06), msg deliver worked(1)
[2013-12-30 17:25:38(109)]        Connection to streaming media server successfully!(udp delay:8ms)
[2013-12-30 17:25:40(061)]        Check subscript, userid:225, times:11, video
[2013-12-30 17:25:45(521)]        Check subscript, userid:225, times:12, video
[2013-12-30 17:25:50(981)]        Check subscript, userid:225, times:13, video
[2013-12-30 17:25:56(445)]        Check subscript, userid:225, times:14, video
[2013-12-30 17:25:58(602)]        Invoke        LogoutServer(userid=256)        Elapse:47 ms
[2013-12-30 17:25:58(627)]        Invoke        BRAC_Release        Elapse:31 ms
[2013-12-30 17:26:01(903)]        Check subscript, userid:225, times:15, video


我用的是jquery ui dialog弹出框,框一弹出,服务器端就显示该用户退出
IE、FF正常,chrome、360就会登出
作者: admin    时间: 2013-12-30 18:15
您好,根据您提供的log,有主动释放资源的操作:
[2013-12-30 17:25:58(602)]        Invoke        LogoutServer(userid=256)        Elapse:47 ms
[2013-12-30 17:25:58(627)]        Invoke        BRAC_Release        Elapse:31 ms

请检查一下,为什么会释放AnyChat的DMO对象?
作者: cg0071    时间: 2013-12-30 18:29
admin 发表于 2013-12-30 18:15
您好,根据您提供的log,有主动释放资源的操作:

请检查一下,为什么会释放AnyChat的DMO对象?

什么意思?请您说详细点,不太明白,谢谢!
作者: admin    时间: 2013-12-30 18:43
从log分析,您的代码调用到了:BRAC_Release,已经将资源全部释放了。
作者: cg0071    时间: 2013-12-30 19:34
本帖最后由 cg0071 于 2013-12-30 19:44 编辑
admin 发表于 2013-12-30 18:43
从log分析,您的代码调用到了:BRAC_Release,已经将资源全部释放了。

BRAC_Release在哪里调用的?js代码里面都没有这个函数,如何被调用,我代码是$("#dialog").dialog("open");
然后日志就输出[2013-12-30 19:39:03(609)]        Invoke        BRAC_Release        Elapse:15 ms
这个什么原因?jquery dialog怎么会触发你们的BRAC_Release函数??????

作者: admin    时间: 2013-12-30 20:01
您好,您可以打开anychatsdk.js脚本,查看BRAC_InitSDK,里面有:
  1. var anychatobj = document.createElement("object")
复制代码
,当这个object被释放(document.body.removeChild(insertdiv);)时,便会主动调用BRAC_Release来释放资源。

请检查一下您的代码,测试一下,是什么原因会导致这个object被释放?
作者: cg0071    时间: 2013-12-31 11:06
admin 发表于 2013-12-30 20:01
您好,您可以打开anychatsdk.js脚本,查看BRAC_InitSDK,里面有:,当这个object被释放(document.body.[/b ...

代码里没有document.body.removeChild(insertdiv)方法,只有anychatsdk.js中有,人员在房间退出后,我会把该视频插件清除,再来一个人的话重新生成(不然显示不了第二个人。。。),
释放资源这种情况ie,ff都没有出现,为什么只有chrome会出现BRAC_Release,代码都是一个
作者: admin    时间: 2013-12-31 11:10
您好,您可以在我们标准的示例代码之上,加一个jquery的dialog,看是否会产生同样的问题?
作者: cg0071    时间: 2013-12-31 11:38
admin 发表于 2013-12-31 11:10
您好,您可以在我们标准的示例代码之上,加一个jquery的dialog,看是否会产生同样的问题?

[2013-12-31 11:36:25(091)]        Invoke        LogoutServer(userid=-4942)        Elapse:15 ms
[2013-12-31 11:36:25(113)]        Invoke        BRAC_Release        Elapse:16 ms

您好,在demo AnyChatCoreSDK_Web_V1.8 中加上一个jquery-ui-dialog,弹出框一出现,日志就出现上面两行,退出!
chrome、360中会出现,ie、ff正常
作者: admin    时间: 2013-12-31 11:53
您好,请将您修改后的示例代码打包上传,我让技术那边帮您分析一下,谢谢。
作者: cg0071    时间: 2013-12-31 12:09
admin 发表于 2013-12-31 11:53
您好,请将您修改后的示例代码打包上传,我让技术那边帮您分析一下,谢谢。

demo已上传,请帮忙分析一下,  自定义进入房间的按钮   是  调用j-ui-dialog的,我把原来的方法注释了

src.rar

388.4 KB, 下载次数: 1

demo


作者: admin    时间: 2013-12-31 13:10
好的,我们分析一下。
作者: cg0071    时间: 2014-1-2 13:20
admin 发表于 2013-12-31 13:10
好的,我们分析一下。

新年快乐!

您好,有消息了请通知我一下

作者: admin    时间: 2014-1-7 15:33
您好,问题已解决。

请修改logicfunc.js::LogicInit()函数,将$("#dialog-form").dialog({});移动到setTimeout(function() {});中,且放到BRAC_InitSDK之后即可。主要是需要在初始化JQueryUI环境之前,必须先初始化AnyChat SDK。
参考:http://bbs.anychat.cn/forum.php?mod=viewthread&tid=446&page=1&extra=#pid3037





欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3