Vue2、websocket 与node.js接口 本地测试

摘要:
Vue2、websocket和节点的本地测试。js接口1.安装Vue native websocket模块2.yarn添加Vue native web socket或使用npm安装Vue nativewebsocket--save 3.从“Vue nature websocket”Vue引入websocketportwebsocket。main.js中的p
Vue2、websocket 与node.js接口 本地测试
1.  安装vue-native-websocket模块
2.  yarn add vue-native-websocket 
或者用 
npm install vue-native-websocket --save
 

3. 在main.js中引入websocket

import websocket from 'vue-native-websocket'

Vue.prototype.$websocket = websocket

Vue.use(websocket, 'ws://localhost:3000', {

  reconnection: true, // (Boolean) whether to reconnect automatically (false)

  reconnectionAttempts: 5, // (Number) number of reconnection attempts before giving up (Infinity),

  reconnectionDelay: 3000, // (Number) how long to initially wait before attempting a new (1000)

})

 

 

项目中main.js使用如下图

 Vue2、websocket 与node.js接口 本地测试第1张

4.在项目中新建websocket.vue文件,在HelloWorld.vue中引入

 Vue2、websocket 与node.js接口 本地测试第2张

5. HelloWorld.vue文件代码如下

<template>

  <div class="hello">

   <websocket/>

  </div>

</template>

 

<script>

import websocket from "@/components/websocket"

export default {

  name: 'HelloWorld',

  components:{

    websocket

  },

  data () {

    return {

    

    }

  },

</script>

 

<!-- Add "scoped" attribute to limit CSS to this component only -->

<style scoped>

 

</style>

 

6.websocket.vue代码如下

<template>

    <div>

        {{msg}}

    </div>

</template>

 

<script>

    export default {

        name:"websocket",

        data() {

            return {

                websock: null,

                msg:""

            }

        },

 

    created(){

           //页面刚进入时开启长连接

            this.initWebSocket()

       },

    destroyed: function() {

    //页面销毁时关闭长连接

      this.websocketclose();

 

    },

 

    methods: {

 

      initWebSocket(){ //初始化weosocket

       

        const wsuri = 'ws://localhost:3000';//ws地址

 

        this.$websocket = new WebSocket(wsuri);

 

        this.$websocket.onopen = this.websocketonopen;

 

        this.$websocket.onerror = this.websocketonerror;

 

        this.$websocket.onmessage = this.websocketonmessage;

 

        this.$websocket.onclose = this.websocketclose;

       },

 

      websocketonopen() {

        console.log("WebSocket连接成功");

      },

 

      websocketonerror(e) { //错误

        console.log("WebSocket连接发生错误");

      },

 

      websocketonmessage(e){ //数据接收

        console.log(e);

this.msg=e.data

      },

 

      websocketsend(agentData){//数据发送

        this.$websocket.send(agentData);

      },

 

      websocketclose(e){ //关闭

        console.log("connection closed (" + e.code + ")");

     },

   },

  }

 </script>

7.创建一个新的项目,新建1.js文件,用于写node.js接口,安装

nodejs-websocket模块npm install websocket

用cmd或者git bash进入后台接口文件,1.js,然后命令行输入node 1.js,启动后台服务。文件如下:

var WebSocketServer = require('websocket').server;

var http = require('http');

 

var server = http.createServer(function(request, response) {

    console.log((new Date()) + ' Received request for ' + request.url);

    response.writeHead(404);

    response.end();

});

server.listen(3000, function() {

    console.log((new Date()) + ' Server is listening on port 3000');

});

 

wsServer = new WebSocketServer({

    httpServer: server,

 

});

 

 

wsServer.on('request', function(request) {

    //当前的连接

    var connection = request.accept(null, request.origin);

 

    setInterval(function(){

        connection.sendUTF('服务端发送消息' + (Math.random().toFixed(2)))

    },500)

 

    console.log((new Date()) + '已经建立连接');

    connection.on('message', function(message) {

        if (message.type === 'utf8') {

            console.log('Received Message: ' + message.utf8Data);

            connection.sendUTF(message.utf8Data);

        }

        else if (message.type === 'binary') {

            console.log('Received Binary Message of ' + message.binaryData.length + ' bytes');

            connection.sendBytes(message.binaryData);

        }

    });

    connection.on('close', function(reasonCode, description) {

        console.log((new Date()) + ' Peer ' + connection.remoteAddress + '断开连接');

    });

});                                          

8. Vue2、websocket 与node.js接口 本地测试到这里就结束了,以上代码用到Websocketd的方法详见websocket文档

免责声明:文章转载自《Vue2、websocket 与node.js接口 本地测试》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇盘点一下数据平滑算法Epplus 使用的简单介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vuejs心法和技法

http://www.cnblogs.com/kidsitcn/p/5409994.html 注意:本文记录作者在学习和使用vuejs开发中的点点滴滴,从vuejs1.0开始直到现在的vuejs2.0以后的版本。期中部分1.0的内容已经过时,仅作各位朋友参考,建议重点关注2.0相关的内容,会随着我对vuejs有了更多的体会后不断维护更新,也欢迎朋友们批评...

vue-cli3.0和element-ui及axios的安装使用

一、利用vue-cli3快速搭建vue项目 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。有三个组件: CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create 、vue serve 、vue ui 等命令) CLI 服务:@vue/cli-service是一个开发环境依赖。构建于 web...

Vue上拉加载下拉刷新---vue-easyrefresh

vue-easyrefresh简介 正如名字一样,EasyRefresh很容易就能在基于Vue的Web应用上实现下拉刷新以及上拉加载操作,支持主流的PC和移动浏览器。它的功能灵感来源于与Android的SmartRefreshLayout,同样也吸取了很多三方库的优点。EasyRefresh中集成了多种风格的Header和Footer,但是它并没有局限性,...

实用的vue插件大汇总

Vue是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件,来了个大汇总,方便查找使用,便于工作和学习。很全的vue插件汇总,赶紧收藏下吧!github上的vue汇总https://github.com/vuejs/awesome-vue#qr-code一...

鼠标悬浮显示鼠标停留数据的内容 elementui + vue

先看效果图 直接上代码 <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane :label="speaker.abscissa[0]" name="first"> <div...

21.Shiro在springboot与vue前后端分离项目里的session管理

1.前言 当决定前端与后端代码分开部署时,发现shiro自带的session不起作用了。 然后通过对请求head的分析,然后在网上查找一部分解决方案。 最终就是,登录成功之后,前端接收到后端传回来的sessionId,存入cookie当中。 之后,前端向后端发送请求时,请求Head中都会带上这个sessionid。 后端代码通过对这个sessionid的解...