AnyChat技术支持论坛

标题: 使用透明通道传送缓冲区扩展方法TransBufferEx发送数据问题 [打印本页]

作者: jelly_bitores    时间: 2013-8-15 15:20
标题: 使用透明通道传送缓冲区扩展方法TransBufferEx发送数据问题
您好,我在Android系统中调用TransBufferEx对指定的用户ID发送数据,在public void OnAnyChatTransBufferEx(int dwUserId, byte[] lpBuf, int dwLen,
                        int wparam, int lparam, int taskid) 方法中接收不到。而调用TransBuffer可以在事件回调方法public void OnAnyChatTransBuffer(int dwUserId, byte[] lpBuf, int dwLen)中接收到数据,如果把dwUserId值设为0,在业务服务器中也接收不到数据。请问这是怎么回事?

作者: jelly_bitores    时间: 2013-8-15 15:24
//向服务器发送消息
//AnyChatTransTaskOutParam outParam = new AnyChatTransTaskOutParam();
//anychat.TransBufferEx(0, sendbuf, sendbuf.length, 0, 0, 0, outParam);
                       
//向服务器发送文件
//String filepath = Environment.getExternalStorageDirectory().getPath() + "/sdkLog.txt";
//anychat.TransFile(0, filepath, 0, 0, 0, new AnyChatTransTaskOutParam());

这两种方式发送后返回值是0,在业务服务器对应的回调函数中都不能接收到,有什么需要注意的吗?
作者: 廖斌    时间: 2013-8-15 15:33
jelly_bitores 发表于 2013-8-15 15:24
//向服务器发送消息
//AnyChatTransTaskOutParam outParam = new AnyChatTransTaskOutParam();
//anychat ...

您好!使用TransBufferEx TransBuffer  TransFile的前提是要进入登录服务器成功。服务器和客户端接收消息都要设置相应的接收句柄。请问您的业务服务器使用的是什么语言的开发版本,。你客户端连接的服务器是自己部署的服务器吗?服务器部署成功了吗?
作者: jelly_bitores    时间: 2013-8-15 15:39
已经登陆成功了,要不然TransBuffer这个方法也不可能发送成功,业务服务器部署成功,因为登陆验证是从数据库读取验证的。

我现在用这种方法就可以在A、B两个客户端之间发送和接收数据:
JSONObject data = new JSONObject();
data.put("wmuc", UserDefine.WM_UC_IMCHATMSG);
data.put("data", content);
byte[] sendbuf = content.getBytes();
anychat.TransBuffer(mCurrUserId, sendbuf, sendbuf.length);

换成TransBufferEx方法就接收不到
AnyChatTransTaskOutParam outParam = new AnyChatTransTaskOutParam();
anychat.TransBufferEx(mCurrUserId, sendbuf, sendbuf.length, UserDefine.WM_UC_REQUESTVIDEO, 1, 0, outParam);
作者: 廖斌    时间: 2013-8-15 15:41
jelly_bitores 发表于 2013-8-15 15:39
已经登陆成功了,要不然TransBuffer这个方法也不可能发送成功,业务服务器部署成功,因为登陆验证是从数据 ...

请问您的业务服务器使用的是什么语言的开发版本?
作者: 廖斌    时间: 2013-8-15 15:43
jelly_bitores 发表于 2013-8-15 15:39
已经登陆成功了,要不然TransBuffer这个方法也不可能发送成功,业务服务器部署成功,因为登陆验证是从数据 ...

另外可以将您android端的日志发上来看下,TransBufferEx默认走的UDP,而TransBuffer走的是TCP
作者: admin    时间: 2013-8-15 15:48
您好,请参考FAQ:http://www.anychat.cn/faq/index.php?action=artikel&cat=2&id=266&artlang=zh
  1. [Debug Settings]
  2. OutputTransBuffer=1
  3. OutputTransTask=1
复制代码
将OutputTransBuffer和OutputTransTask的调试模式打开,然后在日志中会输出更多的信息供参考。

作者: jelly_bitores    时间: 2013-8-16 10:50
嗯,谢谢,问题原因找到了,UDP端口限制策略没有打开,现在可以了。




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