首页 > 其他分享 >Websocket 简单使用

Websocket 简单使用

时间:2024-01-29 14:33:21浏览次数:15  
标签:const socket 简单 ctx ws 使用 Websocket websocket data

vue3  

<script setup>
import { reactive, ref,onMounted ,onBeforeMount,onUnmounted} from 'vue'


onMounted(() => {
  initWebsocket()
})

onUnmounted(() => {
  WebSocketonclose()
})

const ws = reactive({
  socket: null,
})

const initWebsocket = () => {
  const wsuri = "ws://10.54.19.175:7001/ws"
  ws.socket = new WebSocket(wsuri)
  ws.socket.onmessage = WebSocketonmessage
  ws.socket.onopen = WebSocketonopen
  ws.socket.onclose = WebSocketonclose
  ws.socket.onerror = WebSocketonerror
}

const WebSocketonopen = () => {
  const data={ test: '123' }
  WebSocketsend(JSON.stringify(data))
}

const WebSocketonclose = (e) => {
  ws.socket && ws.socket.close()
  ws.socket = null
}

const WebSocketonmessage = (e) => {
  const data = JSON.parse(e.data)
  console.log(data)
}

const WebSocketonerror = (e) => {
  initWebsocket()
}

const WebSocketsend = (data) => {
  ws.socket.send(data)
}


</script>

node 后端  需要安装插件  [email protected]

config/plugin.js

module.exports = {   // had enabled by egg   // static: {   //   enable: true,   // }
  io: {     enable: true,     package: 'egg-websocket-plugin',   }, };  

 

const { Controller } = require('egg');

class HomeController extends Controller {
  async index() {
    const { ctx } = this;
    ctx.body = 'hi, egg';
  }
  async wsSocket() {
    const { ctx } = this;
    if (!ctx.websocket) {
      throw new Error('this function can only be use in websocket router');
    }
    console.log('client connected');
    const obj = { name: 'hello world' };
    setInterval(() => {
      ctx.websocket.send(JSON.stringify(obj));
    }, 2000);
    ctx.websocket
      .on('message', msg => {
        console.log('receive', msg);
      })
      .on('close', (code, reason) => {
        console.log('websocket closed', code, reason);
      });
  }
}

module.exports = HomeController;

  

标签:const,socket,简单,ctx,ws,使用,Websocket,websocket,data
From: https://www.cnblogs.com/qq735675958/p/17994453

相关文章

  • tar中的参数 cvf,xvf,cvzf,zxvf的使用
    tar中的参数cvf,xvf,cvzf,zxvf的使用:https://blog.csdn.net/adminsheery/article/details/127491059?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170650878916800182140677%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=1706508......
  • 云打印app怎么下载,云打印app怎么使用?
    随着云技术的飞速发展,现在云打印也已经普及到众多用户之间。很多有打印需求的朋友都需要用到云打印服务,很多小伙伴也在咨询云打印app,那么今天小易就带大家来了解一下,云打印app怎么下载,云打印app怎么使用? 云打印app怎么下载?很多想要使用云打印服务的用户都想下载云打印app,那......
  • git tag的使用
    一什么是tag: tag是用来备份某次提交的,比如版本1上线前的最后一次在develop分支上的提交为commitX,将commitX打成tag,tag名为v1.0,后续版本迭代中继续在develop分支上开发,版本2最后一次提交为commitN,就将commitN打成tagv2.0,可以用tag来备份每次版本的发布.如果需要回退之......
  • AirNet使用笔记10(组播测试)
    1、修改MSDP2的主机名,IP改为不同网段,加路由测试SMC:/home/cdatc/AirNet/config/network.xml<nodehostname="msdp2"showname="msdp2"position="ACC"logic_position="ACC"stationno="4"bakenode="3"grouptype=&quo......
  • 在Python中,你可以使用以下代码来更改ttk.Combobox下拉框选项的文字大小¹: ```python
    在Python中,你可以使用以下代码来更改ttk.Combobox下拉框选项的文字大小¹:```pythonimporttkinterastkfromtkinterimportttkroot=tk.Tk()root.geometry('500x500')#设置所有Combobox的下拉框文字大小root.option_add("*TCombobox*Listbox.font","Arial20")combob......
  • 使用Golang编写Windows服务
    主要是使用”github.com/kardianos/service“这个库它已经处理好了与服务管理器的交互细节,并且自带服务安装、卸载、启动、停止等功能,非常齐全了。直接上完整代码:packagemainimport( "log" "os" "syscall" "time" "unsafe" "github.com/kardianos/service")......
  • pinia的使用
    Pinia和Vuex区别大致总结:支持选项式api和组合式api写法pinia没有mutations,只有:state、getters、actionspinia分模块不需要modules(之前vuex分模块需要modules)TypeScript支持很好自动化代码拆分pinia体积更小(性能更好)如何使用Pinia一、安装使用Pinia1.1安装下载//pinia......
  • 解决使用PowerShell执行命令出现“因为在此系统上禁止运行脚本”的问题
    1、......
  • Spring WebSocket实现实时通信的详细教程
    简介WebSocket是基于TCP/IP协议,独立于HTTP协议的通信协议。WebSocket连接允许客户端和服务器之间的全双工通信,以便任何一方都可以通过已建立的连接将数据推送到另一方。我们常用的HTTP是客户端通过「请求-响应」的方式与服务器建立通信的,必须是客户端主动触发的行为,服务端只是......
  • 页面中的blockShow组件展示,可进行相关的样式修改,一般月饼图搭配使用,具体根据实际来
    <template><!--这是新版的相对应的颜色列表的UI--><divclass="bllockListShow"><divclass="pieList"v-for="(item,index)indataArr":key="index"@click="clickUptown(index,item)"......