vue中创建WebSocket链接

 创建链接的JS:

function getSocket(url, params, callback) {
  let socket;

  if (typeof WebSocket === "undefined") {
    console.log("您的浏览器不支持WebSocket");
  } else {
    console.log("您的浏览器支持WebSocket");

    // 初始化 WebSocket 对象,指定要连接的服务器地址与端口建立连接
    socket = new WebSocket(url);

    // 打开事件
    socket.onopen = function () {
      console.log("Socket 已打开");
      socket.send(params);
    };

    // 获得消息事件
    socket.onmessage = function (msg) {
      // 发现消息进入, 开始处理前端触发逻辑
      callback(msg, socket);
    };

    // 关闭事件
    socket.onclose = function () {
      console.log("Socket 已关闭");
    };

    // 发生了错误事件
    socket.onerror = function () {
      console.log("Socket 发生了错误,请刷新页面");
      // 此时可以尝试刷新页面
    };
  }
}

export { getSocket };

项目中使用:

import { getSocket } from '@/network/socket.js';
   getLogin() {
      getSocket(
        wsBase,//这里为后端的链接,ws://........
        {},//需要传递的参数
        (data, ws) => {
          console.log(data, ws);
          this.$notify({
            type: 'warning',
            title: '提示',
            message: data.data,
            duration: 60000
          });
        }
      );

    },

Vue 是一个前端框架,无法直接创建 WebSocket 服务端。WebSocket 是一种双向通信协议,可以用于客户端和服务端之间的实时通信。要创建 WebSocket 服务端,需要使用后端语言和框架,例如 Node.js 和 Socket.io。 在 Node.js ,可以使用 `ws` 模块来创建 WebSocket 服务端。以下是一个简单的示例: ```javascript const WebSocket = require('ws'); const server = new WebSocket.Server({ port: 8080 }); server.on('connection', function connection(ws) { ws.on('message', function incoming(message) { console.log('received: %s', message); }); ws.send('Hello, client!'); }); ``` 上面的代码创建了一个 WebSocket 服务端,监听 8080 端口。当有客户端连接时,会触发 `connection` 事件,并向客户端发送一条消息。当客户端发送消息时,会触发 `message` 事件,并在控制台输出收到的消息。 如果你想在 Vue 使用 WebSocket 实现实时通信,可以在 Vue 组件使用 `WebSocket` 对象来连接 WebSocket 服务端,并监听 `onmessage` 事件来处理收到的消息。例如: ```javascript export default { data() { return { ws: null, message: '', }; }, mounted() { this.ws = new WebSocket('ws://localhost:8080'); this.ws.onmessage = (event) => { this.message = event.data; }; }, methods: { sendMessage() { this.ws.send(this.message); }, }, }; ``` 上面的代码在 Vue 组件创建了一个 WebSocket 对象,并在 `mounted` 钩子函数监听 `onmessage` 事件。当收到消息时,会将消息赋值给 `message` 数据。组件还有一个 `sendMessage` 方法,用于向 WebSocket 服务端发送消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值