@goldnet/websocket
v0.0.9
Published
## 安装
Downloads
27
Readme
兼容Sockjs的WebSocket
安装
npm i @goldnet/websocket --save
导入
import { H5WebSocket, type MSG } from '@goldnet/websocket';
数据格式
id与服务器协商,如果使用数据格式,可以直接监听具体的ID,如socket.on('idName', onMsg);
{id:string,body:any}
WebSocket 方式
const socket = new H5WebSocket('native');
// socket.outInfoFn = console.log;
// socket.on('open', onOpen);
// socket.on('close', onClose);
// socket.on('error', onError);
// socket.on('timeout', onTimeOut);
// socket.on('message', onMessage);
socket.connect('ws://xxxx');
// 需要服务器实现基于ID定义的消息回传
socket.send({ id: 'c_s_msg', body: { msg: 'test' } });
function onOpen(msg) {
console.log('onOpen', msg);
}
function onClose(msg) {
console.log('onClose', msg);
}
function onError(msg) {
console.log('onError', msg);
}
function onTimeOut(msg) {
console.log('onTimeOut', msg);
}
function onMessage(msg) {
console.log('onMessage', msg);
}
function onMsg(msg) {
console.log('onMsg', msg);
}
Sockjs,Stomp 方式
import { H5WebSocket } from '@goldnet/websocket';
const socket = new H5WebSocket('sockjs');
socket.on('CONNECTED', onCONNECTED); // 连接成功,服务器定义
socket.on('MESSAGE', onMESSAGE); // 格式化后的消息,服务器定义
socket.connect('wss://xxxx'); // 连接服务器
function onCONNECTED(msg) {
console.log('onCONNECTED', msg);
socket.send({ id: 'SEND', headers: { destination: `/app/xxxx` }, body: {} });
socket.send({ id: 'SUBSCRIBE', headers: { id: 'sub-0', destination: `/user/xxxx` } });
}
function onMESSAGE(msg) {
console.log('onMESSAGE', msg);
switch (msg.headers?.subscription) {
case 'sub-0':
debugger
break;
default:
console.warn('onMESSAGE 异常消息', msg);
}
}
可以通过属性defaultConnectHeaders
设置连接时的头信息
API
最大重连次数
defualtMaximuRedeliveries = 2;
连接服务器
connect(host: string, timeOut?: number): void;
发送消息
send(msg: MSG): void;
关闭服务
close(code?: number | undefined, reason?: string | undefined): void;