- websocket,链接connectSocket:ok,但是没有任何回调?
websocket,链接connectSocket:ok,但是没有任何回调,回调函数写在了onReady里面 下面放上主要的代码 onReady: function () { var that = this; var user_id = this.data.user_id var friend_id = this.data.friend_id var task_group_id = this.data.task_group_id var info = this.data.info SocketTask.onOpen(res => { wx.hideLoading() socketOpen = true; console.log('监听 WebSocket 连接打开事件。', res) // 发送空白消息,登录websocket用 if (socketOpen) { SocketTask.send({ data: JSON.stringify({ msg: "", user_id: user_id, friend_id: friend_id, task_group_id: task_group_id }) }) } else { that.webSocket() } }) SocketTask.onClose(onClose => { console.log('监听 WebSocket 连接关闭事件。', onClose) socketOpen = false; that.webSocket() }) SocketTask.onError(onError => { console.log('监听 WebSocket 错误。错误信息', onError) socketOpen = false that.webSocket() }) SocketTask.onMessage(onMessage => { console.log('监听WebSocket接受到服务器的消息事件。服务器返回的消息', onMessage) var ret = JSON.parse(onMessage.data) console.log(ret) // 如果出错,提示,重连 if (ret.code == 1) { // wx.showToast({ // title: ret.msg, // icon: "none" // }) that.webSocket() return false; } else { // 如果是撤回消息 if (ret.data.data.msg_type == "withdraw") { that.delIndexMsg(ret.data.data.index) return false; } if (ret.data.data.selfType) { // 接收自己发出消息的自增id that.setData({ chatList: that.data.chatList.concat({ send_id: user_id, user_id: user_id, friend_id: user_id, msg: ret.data.msg, user_avatarUrl: that.data.avatarUrl, user_avatarUrl: ret.data.userInfo.avatarUrl, create_time: ret.data.data.create_time, id: ret.data.data.insert_id, type: ret.data.data.type, time: ret.data.data.time, file_name: ret.data.data.file_name, file_size: ret.data.data.file_size }), toView: "msg" + ret.data.data.insert_id, lastId: ret.data.data.insert_id }) } else { // 接收其他人的消息 that.setData({ chatList: that.data.chatList.concat({ send_id: ret.data.data.user_id, user_id: friend_id, friend_id: user_id, msg: ret.data.msg, friend_avatarUrl: that.data.avatarUrl, send_avatarUrl: ret.data.userInfo.avatarUrl, create_time: ret.data.create_time, id: that.data.lastId, type: ret.data.data.type, time: ret.data.data.time, file_name: ret.data.data.file_name, file_size: ret.data.data.file_size }), toView: "msg" + that.data.lastId, lastId: that.data.lastId + 1 }) } if (ret.data.data.type == 'image') { let imgList = that.data.imgList imgList.push(ret.data.data.msg) that.setData({ imgList: imgList }) } } }) }, onShow: function () { var that = this if (!socketOpen) { this.webSocket() } }, // 建立socket webSocket: function () { var that = this // 先关闭 // wx.onSocketOpen(function() { // wx.closeSocket() // }) // 创建Socket SocketTask = wx.connectSocket({ url: app.wssurl, data: {}, header: { 'content-type': 'application/json' }, method: 'post', success: function (res) { console.log('WebSocket连接创建', res) }, fail: function (err) { wx.showToast({ title: '网络异常!', }) console.log(err) }, }) }, // 销毁页面事件 onUnload(){ // 先关闭 wx.closeSocket() }
2020-06-16 - websocket URL直接传json字符串参数真机报url错误,开发工具没问题
开发工具是可以的 [图片] 用的浏览器测试的也是可以的 [图片] 真机调试时候报url错误 fail:url not well format [图片] [图片] 后台这样接收的 [图片] 刚在社区找了一波没有相关,是我写错了还是Url中不能带那种格式~ 注:换成一纯字符(***/ceshi:test)也是可以的真机访问的
2019-11-29 - watch 在工具和真机的调试模式都正常,在真机的非调试模式不正常,大家有遇到过吗?
从昨天突然开始出问题的,为了便于说明问题,我已经把代码写成最基本的方式了,如下:[图片] 在工具和真机的调试模式下,都可以弹出文字提示框。但是在真机非调试模式下,什么提示都没有。我怀疑是不是微信的watch服务是单独的服务,突然出问题了,是不是需要重新启动恢复一下?折腾了1上午了,实在没辙了,已经是最简模式的代码了。
2021-01-08