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

one-server-socket

v0.0.7

Published

> It's a toolkit for nodejs Net Socket.

Downloads

1

Readme

It's a toolkit for nodejs Net Socket.

Functions

interface AppConfig {
  port?: number; // 端口号
  encoding?: BufferEncoding; // socket的编码, 设置以后将接收的数据自动解码
  packet?: { // 数据包
    direct?: boolean; // 是否简单接收, 即不考虑分包、粘包, 接收一个数据包即认为结束
    eof?: string; // 消息结束标志模式: 接收端通过检测这个结束标志来确定一个数据包的结束, 例如换行符 \r\n 或其他不常见字符
    head?: { // 包头包体模式: 数据包添加包头,包头中包含数据包的长度信息, 接收端首先读取包头中的长度字段,然后再根据长度来正确分割和解析包体
      byteLen: number; // 包头长度
      json?: boolean; // 是否是一个JSON字符串
      separator?: string; // 键值对分隔符, 默认“,”
      operator?: string; // 键值分隔符, 默认“=”
      body_size_field?: string; // 包体大小, 默认bodysize
    }
  },
  auth?: { 
    login_tag?:string; // 客户端登录验证消息的前缀, 用于让服务器识别是否是登录验证的请求,默认[login]
    secret?:string; // TOKEN密钥, 默认geo.secret
  }
}
type PacketHead = {[field:string]:string}; // 包头
type PacketBody = Buffer|string; // 包体
interface Gift {
  mode: "direct"|"eof"|"head";
  head?: PacketHead;
  body?: PacketBody;
}

class NetSocket {
  // 构造器
  constructor(filename:string);
  constructor(options:SocketConfig);
  /**
   * 处理器
   * @param callback 业务处理的回调函数(gift:Gift, socket:Socket)
   */
  handle(callback:(gift:Gift, socket:any)=>void): this;
  /**
   * 启动服务
   * @param callback 消息回调函数
   * @returns 
   */
  start(callback?:(log:string)=>void): this;
}