@ohos/socketio Demo 测试服务端
本目录包含两个独立的 Node.js 服务器,用于配合 @ohos/socketio 客户端 Demo 进行功能验证。
文件说明
| 文件 | 说明 |
|---|---|
index.js |
Socket.IO 主服务器(端口 6600),支持 Demo 001~012 |
proxy.js |
HTTP 代理服务器(端口 6601),支持 Demo 012 代理认证测试 |
package.json |
项目配置,声明 socket.io 依赖,仅 index.js 需要 |
proxy.js仅使用 Node.js 内置模块(http、net、url、crypto),无需安装任何第三方依赖,可单独运行。
环境要求
- Node.js >= 14
- npm(仅启动
index.js时需要)
快速启动
1. 安装依赖(仅首次,且仅 index.js 需要)
npm install
2. 启动主服务器(支持 Demo 001~012)
node index.js
# 或
npm start
服务监听地址:http://<本机IP>:6600
3. 启动代理服务器(支持 Demo 012 代理认证)
node proxy.js
代理监听地址:http://<本机IP>:6601
两个服务器相互独立,可同时运行,也可按需单独启动。
index.js — Socket.IO 主服务器
端口: 6600
命名空间:
| 命名空间 | 用途 |
|---|---|
/(默认) |
支持 Demo 001~007、009~012 的事件处理 |
/test |
Demo 003 命名空间配置与监听 |
/error-test |
Demo 008 错误事件触发(服务端中间件始终拒绝连接) |
支持的事件(默认命名空间 /):
| 事件名 | 行为 | 对应 Demo |
|---|---|---|
chat |
echo 回同名事件 | 004 |
multiEvent |
多参数 echo | 005 |
onceEvent |
echo(验证 once 单次监听) | 005 |
binaryEvent |
echo Buffer 二进制数据 | 006 |
ackEvent |
调用 ACK 回调,返回 {status, echo, timestamp} |
007 |
binaryAckEvent |
回传二进制 ACK:code=200 + Buffer("ACK_OK") |
007 |
admin_disconnect |
服务端主动断开该连接,触发客户端重连 | 010 |
ping_test |
回传 pong_test 事件 |
通用 |
proxy.js — HTTP 代理服务器
端口: 6601
默认认证凭据:
| 字段 | 值 |
|---|---|
| 用户名 | proxyuser |
| 密码 | proxypass |
支持的代理协议:
- HTTP CONNECT 隧道:WebSocket 升级的必经路径,凭据正确则建立 TCP 隧道
- 普通 HTTP 代理转发:用于 Socket.IO Polling 传输降级场景
认证方式为 Proxy-Authorization: Basic <base64(user:pass)>,凭据错误时返回 407 Proxy Authentication Required。
Demo 012 配置示例(客户端 ETS):
目标 Socket.IO 服务器 → http://<本机IP>:6600
proxyUri → http://<本机IP>:6601
username → proxyuser
password → proxypass
package.json 说明
package.json 对于本目录是有条件必要的:
- 启动
index.js时必须:依赖的socket.io ^4.6.1需通过npm install安装后方可运行。 - 仅运行
proxy.js时可跳过:proxy.js只使用 Node.js 内置模块,不依赖任何 npm 包,无需执行npm install。