kk-ws

2.1.11 • Public • Published

KK-WS

这是一个包含客户端和服务端的WebSocket框架

GETTING STARTED

  1. npm install kk-ws --save
const Server = require('kk-ws')

const server = new Server({
    withClient:true,
    encrypt:true //这里设置之后websocket会被加密,开发过程可以设为false
})


server.on("connection",socket=>{
    socket.on('news',(content,callbackFn)=>{
        socket.emit("news",content)
    })
})

server.listen(4400)

目标 (能替代socket.io的适合我们公司的websocket框架)

打开示例

打开终端: npm test 打开终端: node test/index.js

浏览器打开 http://localhost:1234 打开F12

原理

连接

  1. 客户端首先通过http获取sid

  2. 客户端通过获取到的sid,连接websocket

  3. 如果webosocket连接不上,会走两条连接,send走post,receive走long polling (不做了,数据传输比较频繁的情况下,服务器压力会很大)

为什么用http获取sid这一步,websocket的连接建立是比较粗暴的,连接建立失败基本上就是1006错误,不会透露错误原因,通过http建立预连接可以在出错时得到详细的错误信息

服务器

  1. 服务器端实现了http和websocket两种的链接方式

  2. 服务器分两种模式独立运行模式,和模块运行模式

  3. 服务器支持消息录制,根据channel区分

独立模式

  1. 同机房的多服务器模型,使用redis的publish subscribe机制,向服务器分发

模块运行模式

  1. connector模块,专门用于建立websocket连接,广播和单播,不处理业务逻辑(可以多服务器)

  2. backend模块,单服务器运行,通过 RabbitMQ/websocket 与connector模块建立,收到connector的消息,处理后返还给connector

Readme

Keywords

none

Package Sidebar

Install

npm i kk-ws

Weekly Downloads

12

Version

2.1.11

License

MIT

Unpacked Size

195 kB

Total Files

18

Last publish

Collaborators

  • com-melot-kk-web