1.0.0 • Published 5 years ago

socket-json-rpc v1.0.0

Weekly downloads
4
License
BSD 3-Clause
Repository
-
Last release
5 years ago

socket-json-rpc

Introduction

  • Based on WebSocket
  • Designed according to JSON-RPC 2.0
  • Support automatic reconnection
  • Support TypeScript

Install

npm i socket-json-rpc

Example

import { SocketJsonRpc } from 'socket-json-rpc'

const socket = new SocketJsonRpc({
  url: '',
  onOpen: () => {
    console.log('open !!')
    send()
  },
  onConnecting: () => {
    console.log('connecting !!')
  },
  onClose: () => {
    console.log('close !!')
  },
  notify: {
    notificationName: () => {
      console.log('notification !!')
    }
  }
})

// Original WebSocket
console.log(socket.ws)

// Current state
console.log(socket.status)

async function send() {
  try {
    const result = await socket.sendRequest('methodName', {param: 'value'})
    console.log('request success', result)
  } catch (e) {
    console.error('request error', e)
  }
}

Config

interface SocketJsonRpcConfig {
  url: string
  maxReconnectTime?: number // Maximum number of consecutive reconnection, default: 10
  reconnectDelay?: number // Each reconnection interval, default: 3000
  requestTimeout?: number // Request timeout, default: 30000
  onOpen?: Function // Connected
  onClose?: Function // Disconnected
  onError?: Function // Socket error
  onConnecting?: Function // Connecting
  notify?: NotifyCallbacks // Notification callback
}

Methods

// send request
// timeout - Timeout for this request
// onCreateMsg -Can get packed data (including id)
function sendRequest(method: string, params?: object, timeout?: number, onCreateMsg?: Function): Promise<any>;
// send notification
function sendNotification(method: string, params?: object): void;
// close websocket
function close(): void;

Set debug output

import { setLogger } from 'socket-json-rpc/dist/logger'

setLogger(param)

When param is a number:

  • 0 - turn off all debug output
  • 1 - only output Error message
  • 2 - Output Error, Warning message
  • 3 - Output Error, Warning, Debug messages

When param is an object, replace it directly, please refer to the following structure:

interface Logger {
  debug: Function
  warn: Function
  error: Function
}
1.0.0

5 years ago