js中使用websocket

这篇具有很好参考价值的文章主要介绍了js中使用websocket。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 后端地址是http的   websocket地址 ws开头;后端地址是https的,websocket地址wss开头;

对于websocket没有跨域的问题

import { MessageBox } from 'element-ui';
let url = "ws://192.168.0.181:8000";  //请求的后端地址

let websocket = null;//全局WebSocket对象
let lockReconnect = false; // 网络断开重连
let wsCreateHandler = null; // 创建连接
export function createWebSocket(fn){
  try{
    if ('WebSocket' in window) {
      websocket = new WebSocket(`${url}/webSocketServer?token=${getToken()}`);
    } else if ('MozWebSocket' in window) {
      websocket = new MozWebSocket(`${url}/webSocketServer?token=${getToken()}`);
    } else {
      websocket = new SockJS(`${url}/sockjs/webSocketServer?token=${getToken()}`);
    }
  }catch {
    reconnect();
    return;
  }

  websocket.onopen = function(event) {
   // websocket.send("连接成功");
    console.log("服务已连接")
  };

  websocket.onmessage = function(event){
    var data=JSON.parse(event.data);
    if(data.type === 'exit'){
      MessageBox.alert(data.name, '提示', {
        dangerouslyUseHTMLString: true,
        showConfirmButton: true,
        type: 'warning',
      }).then(()=>{
        store.dispatch('user/resetToken').then(() => {
          removeToken();
          // window.location.reload();
          router.replace("/login")
        });
      });

    }
    fn(data);


  };
  websocket.onclose = function(event) {
    console.log("服务连接关闭")
  };
  websocket.onerror = function(event) {

    console.log(event,"连接出错")
  };
}
/**
 *  异常处理
 * 处理可以检测到的异常,并尝试重新连接
 */
function reconnect() {
  if (lockReconnect) {
    return;
  }
  console.log("reconnect");
  lockReconnect = true;
  // 没链接上会一直连接,设置延迟,避免过多请求
  wsCreateHandler && clearTimeout(wsCreateHandler);
  wsCreateHandler = setTimeout(function() {
    console.log("-----websoket异常-------");
    createWebSocket();
    lockReconnect = false;
  }, 1000);
}
export function websocketClose() {
  console.log('执行了关闭')
  websocket.close();    //手动关闭websocket
}

js中使用websocket

注意:系统退出后需要关闭websocket,尤其是平台需要单账号登陆的。文章来源地址https://www.toymoban.com/news/detail-505296.html

到了这里,关于js中使用websocket的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue使用WebSocket实现实时获取后端推送的数据。

    Vue可以使用WebSocket实现实时获取后端推送的数据。 1.在Vue项目中安装WebSocket库 可以使用npm或yarn安装WebSocket库: 2.创建WebSocket连接 在Vue组件中创建WebSocket连接,连接到后端WebSocket服务器,代码如下: 上面的代码中,使用WebSocket连接到后端WebSocket服务器,通过监听onmessage事件,

    2024年02月08日
    浏览(39)
  • java后端使用websocket实现与客户端之间接收及发送消息

    客户端请求websocket接口,连接通道=》我这边业务成功客户端发消息=》客户端自动刷新。 接口:ws://localhost:8080/websocket/xx 经测试,成功 如果是线上服务器连接,则需要在nginx里配置websocket相关内容,再重启nginx,代码如下 本地连接的时候用的是ws://,因为是http链接,但是如果是

    2024年02月16日
    浏览(31)
  • SpringBoot后端服务开启Https协议提供访问(使用阿里云资源)

    目录 概述  申请/下载证书 部署证书 本地测试访问 服务器部署访问  最后/扩展 总结 本篇博客说明如何将SpringBoot项目开启Https协议提供访问。 博文以步骤 【申请/下载证书】,【部署证书】,【本地测试访问】,【服务器部署访问】  , 【扩展】 展开说明。 废话 :当我们

    2024年02月12日
    浏览(33)
  • 解决websocket在部署到服务器https下无法使用的问题

    目录 一、问题 1.1 问题描述 1.2 问题详细描述 二、解决 2.1 https下的链接类型 2.2 修改Nginx的配置 一个小项目中使用到了websocket,这个websocket在本地完全是完全正常运行的,不管是 前后台的信息通讯  还是 异常报错接收 , 无任何异常 ,但当把后台代码部署到阿里云服务器后

    2024年02月09日
    浏览(22)
  • js中使用websocket

     后端地址是http的   websocket地址 ws开头;后端地址是https的,websocket地址wss开头; 对于websocket没有跨域的问题 注意:系统退出后需要关闭websocket,尤其是平台需要单账号登陆的。

    2024年02月11日
    浏览(24)
  • Thinkphp5.0 安装使用Workerman实现websocket前后端通信,后端主动推送消息到前端

    安装使用Workerman实现websocket前后端通信,后端主动推送消息到前端,实现后端有数据更新时,前端页面自动更新数据。 我使用的是基于Thinkphp5.0的ThinkCMF5.0。 安装: 启动: public目录下放置的server.php文件,注意里面的配置必须按照你的Worker控制器来: woker控制器: 后端主动推

    2024年02月16日
    浏览(44)
  • 关于设置静态IPV4静态地址后ipconfig/all发现IPV4首先是169开头的IP

     解决办法一: 出现这种情况一般是IP地址冲突,换一个IP地址。 解决办法二: 1、windows+R 输入cmd进入命令行。 2、输入  netsh winsock reset 后回车 , 稍后,会有成功的提示:成功地重置Winsock目录→重启计算机完成重置。 3、之后输入 netshintIPreset.log (按回车键执行命令) 4、之

    2024年04月25日
    浏览(22)
  • js 正则表达式 限制input元素内容必须以abc开头,123结尾

    要通过正则表达式验证一个输入元素的内容是否以\\\"abc\\\"开头且以\\\"123\\\"结尾,您可以使用 ^ 表示开头, $ 表示结尾,以及适当的字符类或具体字符。以下是一个示例正则表达式: 上面的正则表达式将匹配以\\\"abc\\\"开头,以\\\"123\\\"结尾的任何字符串,其中 .* 表示匹配零个或多个任意字符

    2024年02月13日
    浏览(28)
  • WebSocket的使用方法(JS前端)

    先来一个常用例子 封装的代码 上面的代码就够用,也可以查看我封装好的 WebSocket 代码(包括心跳机制):点击查看 下面详细说明常用的属性和方法 更全面的官网的文档可以去这里看:点击查看 下面是我总结的内容 WebSocket WebSocket 对象提供了用于创建和管理 WebSocket 连接,

    2024年02月02日
    浏览(28)
  • 如何在Node.js中使用WebSocket实现实时通信

    在Web应用程序中,实时通信已经成为一种必不可少的功能。WebSocket是一种基于TCP的协议,它提供了双向通信的能力,使得实时通信变得更加容易。Node.js提供了一个内置的WebSocket模块,使得开发实时通信应用程序变得非常简单。在本文中,我将介绍如何在Node.js中使用WebSocket实

    2024年02月14日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包