最近在开发一个在PC端(windows环境微信)使用的小程序,用到实时数据推送,发现一个问题。
代码在手机端或开发者工具都能稳定运行并返回数据,但如果到PC端(windows环境微信),根据返回数据的大小,数据大时会报错,报错内容如下。
其实数据也不算大,如这种数据:
{_id: "2a0398605f1840c000503cec46f3a3da", name: "油城北", subjection: "茂南", type: "grid"}
在PC端,12条以下没有问题,12条以上就会报错。可见数据也不算大。
不知道如何解决?请指教。
报错内容:
thirdScriptError
[realtime] onMessage parse res.data error: SyntaxError: Unexpected token o in JSON at position 1;at socketTask.onmessage callback function
Error: [realtime] onMessage parse res.data error: SyntaxError: Unexpected token o in JSON at position 1
at n.Bi.onSocketMessage (file://6.js/:2:508995)
at n.e (file://6.js/:2:260063)
at i. (file://6.js/:2:128008)
at i.emit (file://6.js/:2:615034)
at file://6.js/:2:1311903
at file://6.js/:2:607765
at Object.m (file://6.js/:2:77725)
at file://164.js/:1:57
你好,Windows的微信版本号是?
微信版本:2.9.5.41
实时推送代码应该没问题,是参照文档写的,而且,手机端和开发者工具运行稳定,就是PC端(windows)有问题。
const db = wx.cloud.database()
const _ = db.command
console.log('[需求列表] : 开始监听')
watcher = db.collection('support').orderBy('createTime', 'desc').limit(that.data.supportListLimit)
.where(_.and({
closedLoop: isClosedLoop
}, _.or({
frontlineOpenId: that.data.loginInfo.staffOpenId
}, {
supportOpenId: that.data.loginInfo.staffOpenId
})))
.watch({
onChange: function (snapshot) {
console.log(snapshot)
},
onError: function (err) {
console.error('the watch closed because of error', err)
}
})
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database/realtime.html