帖子
帖子
用户
博客
课程
显示全部楼层
4
帖子
0
勋章
89
Y币

[插件使用] 关于socketManager模块write方法

[复制链接]
发表于 2015-11-20 17:29:19
本帖最后由 lotuspeak 于 2015-11-20 17:32 编辑

在没有建立TCP连接情况下,使用write方法发送数据后,返回的是成功。
具体发现情况如下
APP启动后,运行下面代码,会显示“创建成功”,“连接失败”
  1. socketManager.createSocket({
  2.                                 host : '192.168.0.107',
  3.                                 port : 8282
  4.                         }, function(ret, err) {
  5.                                 if (ret) {
  6.                                         var state = ret.state;
  7.                                         var sid = ret.sid;
  8.                                         var data = ret.data;
  9.                                         var stateStr = "";
  10.                                         if (101 === state) {
  11.                                                 stateStr = "创建成功";
  12.                                                 sidnum = ret.sid;
  13.                                         } else if (102 === state) {
  14.                                                 stateStr = "连接成功";
  15.                                         } else if (103 === state) {
  16.                                                 stateStr = "收到消息";
  17.                                         } else if (201 === state) {
  18.                                                 stateStr = "创建失败";
  19.                                         } else if (202 === state) {
  20.                                                 stateStr = "连接失败";
  21.                                         } else if (203 === state) {
  22.                                                 stateStr = "异常断开";
  23.                                         } else if (204 === state) {
  24.                                                 stateStr = "正常断开";
  25.                                         } else if (205 === state) {
  26.                                                 stateStr = "发生未知错误";
  27.                                         }
  28.                                         var msg = 'sid: ' + sid + '\nstate: ' + stateStr + '\ndata: ' + ( data ? data : '');
  29.                                         api.alert({
  30.                                                 msg : msg
  31.                                         });
  32.                                 }
  33.                         });
复制代码
在显示连接失败的情况下,点击按钮运行下面代码,会显示发送成功,而实际情况是没有连接TCP的
  1.    var socketManager = api.require('socketManager');
  2.                         socketManager.write({
  3.                                 sid : sidnum, //由createSocket方法获取得到
  4.                                 data : 'good'
  5.                         }, function(ret, err) {
  6.                                 if (ret.status) {
  7.                                         api.alert({
  8.                                                 msg : '发送成功'
  9.                                         });
  10.                                 } else {
  11.                                         api.alert({
  12.                                                 msg : 'error'
  13.                                         });
  14.                                 }
  15.                         });
复制代码


380
帖子
4
勋章
6
Y币
感谢反馈,尽快处理。
10
帖子
0
勋章
1479
Y币
还没处理啊。现在我也是这个问题。
10
帖子
0
勋章
1479
Y币
APP发送消息到服务器端,服务器接收不到数据,app还显示发送成功。
0
帖子
0
勋章
2
Y币
亲,解决了吗? 很捉急呀
7
帖子
1
勋章
2409
Y币
这个模块没人管的,大家放弃吧
6
帖子
0
勋章
33
Y币
defier_lai 发表于 2016-1-23 09:07
APP发送消息到服务器端,服务器接收不到数据,app还显示发送成功。

同样的问题,请问现在有解了吗
16
帖子
0
勋章
111
Y币
APP发送消息到服务器端,服务器接收不到数据,app还显示发送成功。

同样的问题,请问现在有解了吗
20
帖子
1
勋章
7581
Y币
write是写到消息队列里,并不是立即发送,所以连没连上都能write成功,即使断开的,等你连上了,这些数据也会发出去。
当前如果是断开的,你就不应该发数据,这是正常逻辑。
连接断了,也会有事件给你,这个时候如果你有想法,就别write了。
您需要登录后才可以回帖 登录

本版积分规则