vue中使用socket连接后台

1、需求背景

  工程车巡检,实时发送巡检位置信息、现场状况到服务器,页面实时显示工程车位置以及状况信息

2、VUE中使用socket建立实时连接

3、mounted生命周期中初始化连接

mounted () {this.initWebSocket()
},

4、socket连接方法

/**
     * 建立socket连接,调用时间:
     * 1.首次进入页面,如果不是查看记录,请求出来初始数据后,建立socket连接
     * 2.调用数据库查询完毕后
     * */
    initWebSocket() { //初始化weosocket
      const wsuri = ‘ws://121.40.165.18:8800/‘
      this.websock = new WebSocket(wsuri)
      this.websock.onmessage = this.websocketonmessage
      this.websock.onopen = this.websocketonopen
      this.websock.onerror = this.websocketonerror
      this.websock.onclose = this.websocketclose
    },
    websocketonopen() { //连接建立之后执行send方法发送数据
      let actions = {‘tags‘: [‘ypt/leak/textplantrecord/getlist‘],‘machineid‘:‘18279‘}
      this.websocketsend(JSON.stringify(actions))
    },
    /**
     * 连接建立失败,断开连接
     * 1.查询一次数据库数据
     * 2.查询完后再次建立socket连接
     * */
    websocketonerror() {//连接建立失败重连
      let _this = this
      console.log(‘连接建立失败‘)
      //this.websock.onclose()
      this.initWebSocket()
    },
    websocketonmessage(e) { //数据接收
      //const redata = JSON.parse(e.data)
      console.log(e.data)
      this.dealF2DataList(redata)
    },
    websocketsend(Data) {//数据发送
      this.websock.send(Data)
    },
    websocketclose(e) {  //关闭
      console.log(‘断开连接‘, e)
    },

5、连接状态

6、数据输出(在websocketonmessage里调用数据处理方法)

7、WebSocket 在线测试(点击跳转

原文地址:https://www.cnblogs.com/pangchunlei/p/12539132.html

时间: 2024-10-05 22:46:26

vue中使用socket连接后台的相关文章

R中的socket连接

在R中实现socket连接的函数是sockeConnection,在该函数中可以通过参数port设定端口号,参数server设为TRUE或FALSE来说明创建的是服务器端或客户端.在R中,通过启动两个进程,一个运行服务器端程序,一个运行客户端程序,就可实现socket连接了.代码如下: ## server i = 0 con1 = socketConnection(port=8888, server=TRUE) repeat{ i = i + 1 print(i) write.table(x=d

Vue中使用Ajax与后台交互

一.下载依赖包 npm install --save axios 二.封装 ajax 请求模块 1. api/ajax.js /* ajax 请求函数模块 */ import axios from 'axios' export default function ajax (url = '', data = {}, type = 'GET') { return new Promise(function (resolve, reject) { let promise if (type === 'GE

iOS socket保持后台连接 ios9.0 xcode8.0

本教程是基于AsyncSocket库的简单开发! socket机制今天就不说了,毕竟百度上太多太详尽了! 1.先new一个工程: ?2.要写socket的界面遵循<</span>AsyncSocketDelegate>代理方法:?如图 遵循代理方法 3.创建全局的服务发送端:如图 服务端 ?4.在viewDidLoad里实例化服务器对象并绑定端口号: 服务端实力方法 ?这里需要注意的是:端口最大为65535  其中端口建议设置为5000以上,另外还有一些特殊端口,例如8080端口为

Vue中实现与后台的数据交换(vue-resource)

vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应.(但是目前它已经停止更新了) 1.在vue中安装vue-resource插件 打开vue项目文件夹下的package.json 添加vue-resource版本 再打开src下的main.js文件,import一下vue-resource 然后运行一下vue的项目,项目会提示你下载vue-resource插件,npm install一下即可 2.创建一个新的vue页面,用来测试

在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??

在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTick()方法 当Vue构造器里的data值被修改完成后会调用这个方法,也相当于一个钩子函数吧,和构造器里的updated生命周期很像. 在数据初始化完毕之后,再初始化swiper就不会出现问题了 this.$nextTick(function () { var swiper = new Swiper(

vue中通过后台返回的只动态生成表单及提交

在crm系统中,页面中表单内容和表单提交的内容都是不固定的,特别是表单内容不确定:是根据后台的需要配置出来:前台根据接口返回:进行渲染,处理后进行提交,这样在vue中就会出现问题:因为vue中的数据是先渲染后使用:所有的数据必须先生命出来,所以这样就造成了这个问题: 解决方法: 1.在请求接口:渲染后台需要提交的表单字段的时候:先对所有的需要渲染和提交的表单字段进行遍历,然后存储到data中一个对象中,我写的对象是subParams,这样就可以把所有需要提交的字段提交到subparams中了:

vue中解决时间在ios上显示NAN的问题

最近在用vue,遇到倒计时在ios上显示为NAN的问题. 因为做的是倒计时支付,思路是获取服务器时间和下单时间,再转成秒级时间戳做差值. 在网上找到说是ios 不支持例如2018-09-01 10:00:59这种"-"连接符. 网上的解决是: var data = '2018-09-01 12:00:00' var time= Date.parse(new Date(data )) 然后用正则匹配改一下,将-替换为/ var date = '2018-09-01 12:00:00' v

读懂Java中的Socket编程(转)

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序. 餐前甜点 Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本.当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限.一旦IO操作对象被打开,那么这个用户进程可以对这个

Http和Socket连接区别

1.TCP连接 要想明白Socket连接,先要明白TCP连接.手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k