An abstraction of node-connections structure, which designed especially for keep-in-connection scene. can seamlessly switch protocols with: tcp udp ws polling sse http3 kcp, etc...
npm install konnectjs
!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
- Basic Usage
- Start A WebSocket Server
- Start A Tcp Server
- Hybrid Server
- Documentation
sh
> npm i -S konnectjs
`
in editor:
`typescript
import { Knode,Konnection } from 'KonnectJS'
`
Basic Usage
$3
the code below illustrates how a websocket server is created:
`typescript
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)
})
`
$3
the code below illustrates how a tcp server is created:
`typescript
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)
})
`
$3
the code below illustrates how a server accepting either WebScoket or TCP connections!
`typescript
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
})
``