websocket在安卓上还需要考虑粘包吗?

  • Creator 版本: 2.4.6

  • 目标平台: Android

在h5环境下没有出现过问题,在android个别机型上出现收到消息被切断了。

有人遇到过吗,求指教

必须考虑的

原则上不需要考虑,都用websock而不是socket,底层都替你干好了,每个onmessage都是一条完整的协议,出问题建议从服务端排查,看看服务端的库底层干好了没

不需要,一条message就是完整的

但是我现在解析onmessage返回值内的data直接报错。

打点发现数据不完整,被截断了

@jare 大佬,请求支援

这是日志

编一下码,这么多转义字符 破坏json结构了

你的connent里根本不是json,而是一个长得像json的字符串,要么把字符串编码base64后再传过来,要么就老老实实用正确的json结构传输。json本身是可以嵌套的,所以还是服务端的锅

这个只在很小一部分用户机型上发生

编一下码怎么理解 :hot_face:

感觉你的content字段有特殊字符。
编码是指escape,意思是发送侧在填充content之前先将content中的特殊字符处理一下

确认过没有特殊字符,并且只在部分机型上会出现。不过我们打算先试一下,正额content经过了两次json转换,应该经过一次就可以,就像楼上说的可以嵌套

这种问题应该是服务端json序列化对象里面嵌套了,你们服务端是不是用的python?直接找你们服务端说数据不对就行了 :smiley:

:joy:服务端童鞋会跟你说,我哪不对?要怎么改?分分钟键盘给你自己处理

哈啊哈哈哈哈,刚才喊服务器过来看了看评论,回去默默的把键盘递过来了

Websocket是基于tcp socket的一个网络协议,连接协议,关闭协议,发送协议,接收协议。发送和接收协议里面有数据包的概念,解决了tcp粘包问题,所以使用WebSocket是不需要考虑粘包问题和半包问题的。

:sweat_smile:,写客户端是真烦人 又要修图 又要帮服务端找bug

1赞

测试:这里有个BUG。
前端:等我拼完这个界面再来看这个问题。
半小时后。。。
前端:这个是数据问题找后端。
后端:你调下数据看看是哪个接口哪个字段的问题。
前端:等我拼完这个界面就给你调。
策划:你这个值不对,你给我整个工具我自己来调。
前端:等我拼完这个界面就给你写个。
美术:你这个位置摆得不对,没对齐。
前端:我直接位置居中的还没对齐?
美术:视角上看它就是没对齐。
前端:我知道了,你这两个大小切的不一样,从新给我切,补一下透明区域。
美术:切好了,你看看。
前端:等我拼完这个界面。
运营:我们需要上这个平台,你去研究下这个平台怎么上。
前端:等我拼完这个界面我就去看。
请善待前端,他们可能梦中都还在拼界面 :upside_down_face:

1赞

使用Websocket是不需要考虑粘包问题的,和后端对一下数据格式、编码格式