global.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import Vue from 'vue'
  2. const uploadPath = process.env.VUE_APP_BASE_API + '/appendix/admin'
  3. import store from '@/vendors/vuex'
  4. // import router from './router'
  5. // 2.新创建一个vue实例
  6. const v = new Vue()
  7. export default {
  8. ws: {},
  9. uploadPath,
  10. websocket: '',
  11. videoSrc1: '',
  12. videoSrc2: '',
  13. setWs: function(newWs) {
  14. this.ws = newWs
  15. },
  16. whetherWebSocket: function(type) {
  17. var that = this
  18. if ('WebSocket' in window) {
  19. if (process.env.NODE_ENV === 'production') {
  20. that.websocket = new WebSocket('wss://www.zthymaoyi.com/wss/websocket/?adminId=84f62127b7384dcdbaeaddfe460329fc')
  21. } else {
  22. // that.websocket = new WebSocket('ws://192.168.110.82:8080/')
  23. that.websocket = new WebSocket('ws://192.168.110.82:8090/ws/websocket/84f62127b7384dcdbaeaddfe460329fc192.168.110.98')
  24. }
  25. that.initWebSocket(type)
  26. } else {
  27. alert('当前浏览器不支持websocket')
  28. }
  29. },
  30. initWebSocket: function(type) {
  31. if (type == 'video') {
  32. // 连接错误
  33. this.websocket.onerror = evt => {
  34. console.log('WebSocket连接发生错误 状态码:' + this.websocket.readyState)
  35. }
  36. // 连接成功
  37. this.websocket.onopen = evt => {
  38. console.log('WebSocket连接成功 状态码:' + this.websocket.readyState)
  39. }
  40. // 收到消息的回调
  41. this.websocket.onmessage = event => {
  42. debugger
  43. // 根据服务器推送的消息做自己的业务处理
  44. // console.log('服务端返回:' + event)
  45. // console.log('event.data', event.data)
  46. var msg = event.data.split('$');
  47. // this.videoSrc1 = 'data:image/jpg;base64,' + msg[0]
  48. // this.videoSrc2 = 'data:image/jpg;base64,' + msg[1]
  49. console.log('msg[0]', msg[0])
  50. console.log('msg[1]', msg[1])
  51. store.commit('user/SET_VIDEOSRC', {
  52. videoSrc1: 'data:image/jpg;base64,' + msg[0],
  53. videoSrc2: 'data:image/jpg;base64,' + msg[1],
  54. });
  55. console.log('执行成功')
  56. }
  57. // 连接关闭的回调
  58. this.websocket.onclose = evt => {
  59. console.log('WebSocket连接关闭 状态码:' + this.websocket.readyState)
  60. }
  61. } else {
  62. // 连接错误
  63. this.websocket.onerror = evt => {
  64. console.log('WebSocket连接发生错误 状态码:' + this.websocket.readyState)
  65. }
  66. // 连接成功
  67. this.websocket.onopen = evt => {
  68. console.log('WebSocket连接成功 状态码:' + this.websocket.readyState)
  69. }
  70. // 收到消息的回调
  71. this.websocket.onmessage = event => {
  72. debugger
  73. // 根据服务器推送的消息做自己的业务处理
  74. console.log('服务端返回:' + event.data)
  75. var msg = event.data.split('$')
  76. var that = this
  77. // document.getElementsByClassName('app-container').reload()
  78. v.$notify.warning({
  79. title: '新消息提醒',
  80. message: msg[0],
  81. duration: 0,
  82. onClick() {
  83. this.$router.push({
  84. path: msg[1]
  85. }) // 你要跳转的路由 还可以传参 当然也可以通过其他方式跳转
  86. }
  87. })
  88. // console.log(router)
  89. var currentPage = this.$router.history.current.path
  90. console.log(currentPage, 'currentPage')
  91. this.$router.push({ path: '/' })
  92. console.log('执行成功1')
  93. this.$router.push({
  94. path: currentPage,
  95. query: {
  96. params: Date()
  97. }
  98. })
  99. console.log('执行成功')
  100. }
  101. // 连接关闭的回调
  102. this.websocket.onclose = evt => {
  103. console.log('WebSocket连接关闭 状态码:' + this.websocket.readyState)
  104. }
  105. }
  106. // 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
  107. window.onbeforeunload = this.onbeforeunload
  108. }
  109. }