nodeJS搭建简单socket测试

背景:有个小伙伴使用vue连不上公司的socket,但又要想做连接测试。

网上搜索,安装node环境,其实就是下载个安装包:https://nodejs.org/en/download,安装成功后,配置一下环境变量,配置后win+R,输入cmd打开命令框,输入node -v,可以正常输出node的版本号,说明node安装完成。

然后就是如何创建一个node项目,网上找了一下,搬个砖记录一下。

1.创建nodeServer文件夹,在此目录下再创建一个testSocket目录。

2.在testSocket下使用 npm init -y进行初始化,然后安装 npm install express 、npm install socket.io

3.创建index.js文件,输入以下代码:

复制代码
// 引入 WebSocket模块
const WebSocket = require('ws');

// 创建 WebSocket 服务器,监听端口3000
const server = new WebSocket.Server({port: 3000});

var count = 0;
// 当有客户端连接时触发
server.on('connection', (socket) => {
    console.log('客户端已连接...');

    // 处理收到的消息
    socket.on('message', (data) => {
        console.log(`收到客户端发送的消息: ${data}`);
    });

    socket.send('hello client!');

    setInterval(function(){
        count+=1;
        socket.send(count +':在吗?');
    },1000*5)

});
console.log("ws 服务示例已经启动 ws://localhost:3000")
复制代码

4.在命令框中cd到testSocket中,node index.js,简单的socket就启动。

5.开个新的命令框中输入ipconfig找到自己的ip或者使用127.0.0.1组成地址:ws://127.0.0.1:3000,找个在线的socket测试,输入进去开始连接,就可以发消息了。

6.小伙伴也可以通过我的地址愉快的测试啦。

7.后记:我使用iOS的GCDAsyncSocket无法连接上面的简单服务,经过查询资料得知上面说的是WebSocket,而iOS用的是TCP/IP的Socket,只需要使用nodeJs创建TCP/IP的Socket即可,下面是简单代码。

复制代码
const net = require('net');  
  
// 创建一个TCP服务器实例  
const server = net.createServer((socket) => {  
  // 每当有客户端连接时,都会执行这个回调函数  
  console.log('客户端已连接');  
  
  // 接收客户端发送的数据  
  socket.on('data', (data) => {  
    console.log(`接收到数据: ${data}`);  
  
    // 发送数据回客户端  
    socket.write('服务器收到了你的消息: ' + data);  
  });  
  
  // 监听客户端断开连接事件  
  socket.on('end', () => {  
    console.log('客户端已断开连接');  
  });  
  
  // 如果发生错误,打印错误信息  
  socket.on('error', (err) => {  
    console.error('socket error:', err);  
  });  
});  
  
// 监听端口3000  
server.listen(3000, () => {  
  console.log('服务器正在监听端口 3000');  
});  
  
// 错误处理  
server.on('error', (err) => {  
  throw err;  
});
复制代码

8.以上代码中net是nodeJs自带不需要安装依赖包。

posted @   東玖零  阅读(235)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示