@goldnet/websocket
TypeScript icon, indicating that this package has built-in type declarations

0.0.9 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i @goldnet/websocket

Weekly Downloads

1

Version

0.0.9

License

none

Unpacked Size

24.6 kB

Total Files

7

Last publish

Collaborators

  • ifyx