npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

socket-heart

v0.0.1

Published

基于ES6的class 来封装的WebSocket,包含心跳,断线重连。

Downloads

11

Readme

介绍

WebSocket是基于原生的基础上扩展的心跳和重连机制进行一次封装的,是基于ES6 class的方式,心跳机制单独抽离,可以引用。

适用场景

对数据的实时性要求比较强,客户端与服务频繁交互的场景, 比如:

  • 通信
  • 股票
  • 直播
  • 共享桌面
  • 聊天室
  • 实时共享
  • 多人协作 ....

WebSocket 封装思想

  1. 基于原有的API上扩展方法, 方法通过初始化,和参数一起传入,不用做任何操作,还有直接初始化,之后通过对象调用
  2. 扩展心跳检测
  3. 断线重连

基础知识

  1. ES6的基础语法
  2. ES6的class

安装

$ npm install/i socket-heart

api

参数

OPTIONS对象中有一下属性

  • url: null, // 链接的通道的地址
  • heartTime: 5000, // 心跳时间间隔
  • heartMsg: 'ping', // 心跳信息,默认为'ping'
  • isReconnect: true, // 是否自动重连
  • isRestory: false, // 是否销毁
  • reconnectTime: 5000, // 重连时间间隔
  • reconnectCount: 5, // 重连次数 -1 则不限制
  • openCb: null, // 连接成功的回调
  • closeCb: null, // 关闭的回调
  • messageCb: null, // 消息的回调
  • errorCb: null // 错误的回调

方法

  • create()

建立连接

  • onopen (callback)

自定义连接成功事件 @param {Function} callback 回调函数:如果callback存在,调用callback,不存在调用OPTIONS中的回调

  • onclose(callback)

自定义关闭事件 @param {Function} callback 回调函数:如果callback存在,调用callback,不存在调用OPTIONS中的回调

  • onerror(callback)

自定义错误事件 @param {Function} callback 回调函数:如果callback存在,调用callback,不存在调用OPTIONS中的回调

  • send(data)

自定义发送消息事件 @param {String} data 发送的文本

  • onreconnect()

连接事件

  • destroy()

销毁

心跳[Heart]API

方法

  • reset()

重置

  • start(cb)

启动心跳 @param {Function} cb 回调函数

用法

import { Socket } from 'socket-heart'
let options = {
  ....
}
this.wbSocket = new Socket(options)
this.wbSocket.onmessage((data) => {})
...
import { Socket } from 'socket-heart'
let options = {
  ....,
  onmessage: (data) =>{

  }
}
this.wbSocket = new Socket({ options })
...