在uniapp使用socket.io

首先使用node.js构建后端

参考官方文档

// 首先搭建服务器
var express = require("express");
var app = express();
var server = require("http").createServer(app);
var io = require("socket.io")(server, { cors: true }); //允许跨域

// 监听connecton
io.on("connection", (socket) => {
  console.log("a user connected");
});

// 启动服务器来侦听连接
server.listen(3001, () => {
  console.log("listening on 3001");
});

配置nodemon

如果node端有修改,nodemon会自动重启项目。

"scripts": {
    "start": "nodemon ./src/app.js"
  }

客户端建立socket实例

import io from '@hyoga/uni-socket.io';

const socket = io('http://iPv4地址:3001', {  
  query: {},
  transports: [ 'websocket', 'polling' ],
  timeout: 5000,
});

socket.on('connect', () => {
  // ws连接已建立,此时可以进行socket.io的事件监听或者数据发送操作
  console.log('ws 已连接');
  // socket.io 唯一连接id,可以监控这个id实现点对点通讯
  const { id } = socket;
}

启动

在浏览器的console出现ws 已连接
在node端出现a user connected
socket连接建立成功。

离谱的错误

在一周之前我已经写好了关于socket通信的前后端代码,但是一周以后,再次运行项目报错。

原因是ipv4发生变更,但是我却没有更改代码。
但是我一直在排查代码的错误,忽略了这个。

posted @ 2022-10-13 09:36  pocoui  阅读(294)  评论(0)    收藏  举报