0.0.9 • Published 5 months ago

@goldnet/websocket v0.0.9

Weekly downloads
-
License
-
Repository
-
Last release
5 months ago

兼容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;
0.0.9

5 months ago

0.0.8

5 months ago

0.0.5

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago