Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including socket.io.lite with all npm packages installed. Try it out:

var socketIoLite = require("socket.io.lite")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

socket.io.lite v2.1.25

lightweight socket.io for websoket by ws, 支持微信小程序

socket.io.lite

[![NPM Downloads][downloads-image]][downloads-url] [![CNPM Downloads][downloads-image-cnpm]][downloads-url-c] [![NPM Version][version-image]][version-url] [![License][license-image]][license-url] [![Dependency Status][dependency-image]][dependency-url] [![devDependency Status][devdependency-image]][devdependency-url] [![Code Style][style-image]][style-url]

a lightweight socket.io library for websocket

支持微信小程序
contain heartbeat auto reconnect

Tip

2.0 upgraded the api, using new SocketLite () to create connections, no longer using io() to create connections.

Installation

$ yarn add socket.io.lite

# or npm
$ npm install socket.io.lite

Usage

server

const http = require('http')
const express = require('express')
const socketLite = require('../lib/server') // require('socket.io.lite')
const app = express()
...
const server = http.createServer(app)
const io = socketLite(server)
// events: open, close, error, ...
io.$on("open", client => {
  console.log('open')
  client.$on('testA', data => {
    console.log(data)
  })
  client.$emit('testB', { foo: 'bar' })
})
server.listen(3002)

browser

// <script src="node_modules/socket.io.lite/dist/browser.js"></script> // window.SocketLite
// or
// const SocketLite = require('socket.io.lite/lib/browser.js')
// const SocketLite = require('socket.io.lite/dist/browser.js')
var socket = new SocketLite('ws://127.0.0.1:3002')
socket.$on('open', function () {
  console.log('open')
})
socket.$emit('testA', { bar: 'foo' })
socket.$on('testB', function (data) {
  console.log()
})

weapp (微信小程序)

const SocketLite = require('socket.io.lite/lib/weapp.js')
var socket = new SocketLite('ws://127.0.0.1:3002')
socket.$on('open', function () {
  console.log('open')
})
socket.$emit('testA', { bar: 'foo' })
socket.$on('testB', function (data) {
  console.log()
})

API

client

socket.$on(eventName, callback)
socket.$emit(eventName, data)  

server

io.$on(eventName, data)
io.$emit(eventName, callback) // braodcast
socket.$on(eventName, data)
socket.$emit(eventName, callback)

about the $on !!!
Because JSON.stringify and JSON.parse are used in the current code, data is required to be an object and not to pass in a JSON format string.

Todos

  • [ ] 支持直接传递基本数据类型
  • [ ] 支持传递二进制数据

License

MIT © 小花猫

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free