app.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. var util = require('./utils/util.js');
  2. var api = require('./config/api.js');
  3. var user = require('./services/user.js');
  4. var SocketTask
  5. App({
  6. onLaunch: function() {
  7. //!!生产环境专用测试数据
  8. wx.setStorageSync('userInfo', this.testData.userInfo);
  9. wx.setStorageSync('token', this.testData.token);
  10. // wx.setStorageSync('userInfo', null);
  11. // wx.setStorageSync('token', null);
  12. //获取用户的登录信息
  13. user.checkLogin().then(res => {
  14. console.log('app login')
  15. this.globalData.userInfo = wx.getStorageSync('userInfo');
  16. this.globalData.token = wx.getStorageSync('token');
  17. this.socketTask();
  18. this.wsConnect();
  19. }).catch(() => {
  20. });
  21. },
  22. socketTask: function() {
  23. var that = this;
  24. SocketTask.onOpen(res => {
  25. that.globalData.socketOpen = true;
  26. console.log('监听 WebSocket 连接打开事件。', res)
  27. })
  28. SocketTask.onClose(onClose => {
  29. console.log('监听 WebSocket 连接关闭事件。', onClose)
  30. that.globalData.socketOpen = false;
  31. this.webSocket()
  32. })
  33. SocketTask.onError(onError => {
  34. console.log('监听 WebSocket 错误。错误信息', onError)
  35. that.globalData.socketOpen = false
  36. })
  37. SocketTask.onMessage(onMessage => {
  38. console.log('监听WebSocket接受到服务器的消息事件。服务器返回的消息', JSON.parse(onMessage.data))
  39. })
  40. },
  41. wsConnect: function() {
  42. // 创建Socket
  43. let that = this
  44. SocketTask = wx.connectSocket({
  45. url: api.ChatWs + '/' + this.globalData.userInfo.openId,
  46. data: 'data',
  47. header: {
  48. 'content-type': 'application/json'
  49. },
  50. method: 'post',
  51. success: function(res) {
  52. console.log('WebSocket连接创建', res)
  53. that.wsOnMessage();
  54. },
  55. fail: function(err) {
  56. wx.showToast({
  57. title: '网络异常!',
  58. })
  59. console.log(err)
  60. },
  61. })
  62. },
  63. wsOnMessage:function(){
  64. wx.onSocketMessage(onMessage => {
  65. console.log('监听WebSocket接受到服务器的消息事件。服务器返回的消息', JSON.parse(onMessage.data))
  66. var res = JSON.parse(onMessage.data)
  67. if (res.errno === 0) {
  68. console.log(res.data)
  69. if (res.data.messageType == 3) {
  70. if (res.data.messageBody != 0) {
  71. wx.setTabBarBadge({
  72. index: 3,
  73. text: res.data.messageBody
  74. })
  75. }
  76. }
  77. } else {
  78. console.log(res)
  79. }
  80. })
  81. },
  82. globalData: {
  83. userInfo: {
  84. openId: '',
  85. nickName: 'Hi,游客',
  86. avatarUrl: 'https://i.postimg.cc/RVbDV5fN/anonymous.png'
  87. },
  88. token: '',
  89. socketOpen: false
  90. },
  91. testData: {
  92. userInfo: {
  93. openId: '1',
  94. nickName: '测试用户1',
  95. avatarUrl: 'https://4.bp.blogspot.com/-gKPdnJWscyI/VCIkF3Po4DI/AAAAAAAAmjo/fAKkTMyf8hM/s170/monster01.png'
  96. },
  97. token: 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdmF0YXJVcmwiOiJodHRwczovLzQuYnAuYmxvZ3Nwb3QuY29tLy1nS1BkbkpXc2N5SS9WQ0lrRjNQbzRESS9BQUFBQUFBQW1qby9mQUtrVE15ZjhoTS9zMTcwL21vbnN0ZXIwMS5wbmciLCJvcGVuSWQiOiIxIiwibmlja05hbWUiOiLmtYvor5XnlKjmiLcxIn0.NH3ISj2Fkircr8oB_w8-lZmf3QPt2tEOPx6Xrc-Bt8HAFu1oZIYOBYaevl8PS1xoaKkf4-8TBL2Jfx5E_uSbbkYj6WD5whHoWPy264AC3qP6ddIYFPDt3w5Ya8-FEZ26he6_mTSr0ceX-rMoFl_yiBSqoU0_H4XNAewsrTK8x3ow9qBI26eQlLDxHsZE-R3pA5sUm1IQEuV-pWGFgw6STNedoWJwX9Vq_SS4LnjOjmUZxI_xH3kPT38UAb-tvL-cM1_9XioP6H0G_9v4EhfDvnKZpmVXF4_qVzPy1VL_2VbTQr2AMoIqzP_FBSsCq2l6keP_BF6cnICJmGkqY3sLqw',
  98. socketOpen: false
  99. },
  100. post: {
  101. cate: {
  102. id: 0,
  103. name: ''
  104. },
  105. region: {
  106. id: 0,
  107. name: ''
  108. }
  109. }
  110. })