0.2.1 • Published 1 year ago

konnectjs v0.2.1

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

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

0.2.1

1 year ago

0.2.0

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago