前端之vue3使用WebSocket的详细步骤

 更新时间:2022年11月25日 09:38:30   作者:一只爱吃萝卜的小兔子  
websocket实现的全双工通信,真真太香了,下面这篇文章主要给大家介绍了关于前端之vue3使用WebSocket的详细步骤,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

WebSocket

WebSocket说明

WebSocket 是全双工网络通信通信协议,实现了客户端和服务器的平等对话,任何一方都可以主动发送数据。并且在第一次建立后,就一直保持连接。

WebSocket图示

客户端使用WebSocket

vue3中, 客户端使用WebSocket步骤

  setup(props) {
    // 1.建立链接 -- 携带cookie参数
    var ws = new WebSocket(
      `ws://localhost:9000/judge/submit?satoken=${cookieValue}`
    );
    
    // 2. ws.send()给服务器发送信息
    let submitCode = JSON.stringify({
     userId: id,
      problemId: props.problemId,
      isDebug: "0",
      lang: lang.value,
      code: code.value,
      info: "",
    });

    ws.send(submitCode);
    
    // 3.服务器每次返回信息都会执行一次onmessage方法
    ws.onmessage = function (e) {
      console.log("服务器返回的信息: " + e.data);
      if (e.data === "judging") {
        showTitleClass.color = "green";
        showTitle.value = "judging...";
        showRes.value = "";
      } else if (e.data === "connected") {
        showTitleClass.color = "green";
        showTitle.value = "";
      } 
    };
	// 4.卸载前, 关闭链接
    onUnmounted(() => {
      ws.close();
    });
  },

更多方法

使用构造函数,新建ws实例

// 执行完本语句,客户端就会与服务器进行连接。
var ws = new WebSocket("wss://echo.websocket.org");

连接成功后的回调函数

ws.onopen = function(evt) { 
  console.log("Connection open ..."); 
  ws.send("Hello WebSockets!");
};
// 若需要多个回调  实例.addEventListener
// ws.addEventListener('open', function (event) {
//  ws.send('Hello Server!');
// });

用于指定收到服务器数据后的回调函数。

服务器数据可能是文本,也可能是二进制数据(blob对象或Arraybuffer对象)

ws.onmessage = function(evt) {
  console.log( "Received Message: " + evt.data);
  ws.close();
};

指定连接关闭后的回调函数。用法同open

ws.onclose = function(evt) {
  console.log("Connection closed.");
};      

总结

到此这篇关于前端之vue3使用WebSocket的文章就介绍到这了,更多相关vue3使用WebSocket内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue中实现视频播放的示例详解

    Vue中实现视频播放的示例详解

    这篇文章主要为大家学习介绍了基于Vue如何实现视频播放的功能,文中的示例代码讲解详细,具有一定的参考价值,需要的小伙伴可以了解一下
    2023-08-08
  • Vite打包优化之缩小打包体积实现详解

    Vite打包优化之缩小打包体积实现详解

    这篇文章主要为大家介绍了使用Vite缩小打包体积如何实现的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 浅谈Vue+Ant Design form表单的一些坑

    浅谈Vue+Ant Design form表单的一些坑

    本文主要介绍了浅谈Vue+Ant Design form表单的一些坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 解决v-if 与 v-for 同时使用报错的问题

    解决v-if 与 v-for 同时使用报错的问题

    在进行项目开发的时候因为在一个标签上同时使用了v-for和v-if两个指令导致的报错,遇到这个问题如何解决呢?下面小编给大家带来了关于v-if 与 v-for 使用报错问题分析及解决方法,一起看看吧
    2022-03-03
  • Vue3之路由的元数据信息meta详解

    Vue3之路由的元数据信息meta详解

    这篇文章主要介绍了Vue3之路由的元数据信息meta详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Vuepress生成文档部署到gitee.io的注意事项及说明

    Vuepress生成文档部署到gitee.io的注意事项及说明

    这篇文章主要介绍了Vuepress生成文档部署到gitee.io的注意事项及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue3前端实现微信支付详细步骤

    vue3前端实现微信支付详细步骤

    这篇文章主要给大家介绍了vue3前端实现微信支付的详细步骤,随着移动端的普及和互联网购买需求的增加,微信支付在电商领域中发挥着越来越重要的作用,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-11-11
  • vue中如何给静态资源增加路由前缀

    vue中如何给静态资源增加路由前缀

    这篇文章主要介绍了vue中如何给静态资源增加路由前缀,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • nuxt静态部署打包相对路径操作

    nuxt静态部署打包相对路径操作

    这篇文章主要介绍了nuxt静态部署打包相对路径操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vue项目中Token的使用方式

    vue项目中Token的使用方式

    这篇文章主要介绍了vue项目中Token的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09

最新评论