@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 内置模块(httpneturlcrypto),无需安装任何第三方依赖,可单独运行。


环境要求

  • 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