@wukong-kit/network
v0.1.2
Published
WebSocket-based network layer for Wukong Kit with JSON protocol, auto-reconnect, and request/response pattern.
Readme
@wukong-kit/network
WebSocket network layer for Wukong Kit.
It provides a JSON message envelope, request/response calls, server push events, automatic reconnect, heartbeat checks, and an offline request queue.
Install
npm install @wukong-kit/networkBasic Usage
import { networkManager } from '@wukong-kit/network';
networkManager.setConfig({
serverUrl: 'wss://game.example.com/ws',
authToken: 'your-token',
});
networkManager.connect();Request / Response
const player = await networkManager.request('player.login', {
uid: 10001,
});Server responses should include ackSeq with the request seq.
{
route: 'player.login',
seq: 2001,
ackSeq: 1,
ack: true,
body: { name: 'Wukong' },
timestamp: Date.now()
}Server Push
import { WKEvent } from '@wukong-kit/core';
import { WKNetworkEventName } from '@wukong-kit/network';
WKEvent.on(WKNetworkEventName.PUSH, (message) => {
console.log(message.route, message.body);
});
WKEvent.on('wk:net:push:room.match', (body) => {
console.log('matched', body);
});Custom Protocol
networkManager.registerProtocol('binary', myBinaryProtocol);
networkManager.useProtocol('binary');Events
| Event | Payload |
|---|---|
| wk:net:connected | { url } |
| wk:net:disconnected | { code, reason, wasConnected } |
| wk:net:reconnecting | { attempt, delay } |
| wk:net:push | WKMessage |
| wk:net:push:${route} | body |
| wk:net:error | { message, code? } |
Config
| Option | Default |
|---|---|
| serverUrl | '' |
| authToken | '' |
| defaultTimeout | 30000 |
| heartbeatInterval | 10000 |
| heartbeatTimeout | 5000 |
| reconnectMaxAttempts | 3 |
| reconnectBaseDelay | 1000 |
| reconnectMaxDelay | 30000 |
| protocolName | 'json' |
