npm

konnectjs
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

logo

An extremely flexible abstraction of node-connections structure, which designed for keep-in-connection using, can be fit with any type of network protocol

this work is still in progress.

Installation

or install from npmjs:

> npm i -S konnectjs

in editor:

import { Knode,Konnection } from 'KonnectJS'

Basic Usage

Start A WebSocket Server

the code below illustrates how a websocket server is created:

import { Knode,Konnection } from 'konnectjs'
import { WebSocketBroker } from 'konnect-ws'

let node = new Knode()
.setBroker(new WebSocketBroker({ port:3000, isPublic:true })) // Immediately listen on 3000, and communicate with websocket
.use(()=>ctx=>{
    console.log("websocket message", ctx.eventType, ctx.dataIn)
})

Start A Tcp Server

the code below illustrates how a tcp server is created:

import { Knode,Konnection } from 'konnectjs'
import { TcpBroker } from 'konnect-tcp'

let node = new Knode()
.setBroker(new TcpBroker({ port:3000, isPublic:true })) // now it's upon TCP
.use(()=>ctx=>{
    console.log("tcp data", ctx.eventType, ctx.dataIn)
})

Hybrid Server

the code below illustrates how a server accepting either WebScoket or TCP connections!

import { Knode,Konnection } from 'konnectjs'
import { TcpBroker } from 'konnect-tcp'
import { WebSocketBroker } from 'konnect-ws'


let wsNode = new Knode() // websocket
.setBroker(new WebSocketBroker({ port:3000, isPublic:true }))
.use(()=>(ctx,next)=>{
  console.log("raw WebSocket",ctx.eventType)
  next()
})
.to(()=>endNode) // continue with endNode


let tcpNode = new Knode() // tcp
.setBroker(new TcpBroker({ port:3000, isPublic:true }))
.use(()=>(ctx,next)=>{
  console.log("raw TCP",ctx.eventType)
  next()
})
.to(()=>endNode) // continue with endNode


let endNode = new Knode()
.use(()=>(ctx)=>{
  // both TCP and WS events are redirected here
  console.log("application event",ctx.eventType) 
  ctx.send(ctx.dataIn) // send back
})

Documentation

See full document here

there are alse samples here:

  • chat - a simple chat room with websock server and client
  • switch_protocols - a chat room, but can swtich with varied protocols
  • chat2 - a chat room, but with packet split, autoreconnect, heartbeat strategies
  • simple - a simple transmitter between knodes

see step-by-step tutorial here

Package Sidebar

Install

npm i konnectjs

Weekly Downloads

0

Version

0.2.1

License

ISC

Unpacked Size

40.5 kB

Total Files

14

Last publish

Collaborators

  • bbbirder