multiplex

A binary stream multiplexer

  • 所有者: max-mapper/multiplex
  • 平台:
  • 许可证:
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

multiplex

A binary stream multiplexer. Stream multiple streams of binary data over a single binary stream. Like mux-demux but faster since it only works with binary streams.

NPM

api

var multiplex = require('multiplex')([options], [onStream])

Returns a new multiplexer. You can use this to create sub-streams. All data written to sub-streams will be emitted through this. If you pipe a multiplex instance to another multiplex instance all substream data will be multiplexed and demultiplexed on the other end.

onStream will be called with (stream, id) whenever a new remote sub-stream is created with an id that hasn't already been created with .createStream.

Options include:

  • opts.limit - set the max allowed message size. default is no maximum

Any other options set in options are used as defaults options when creating sub streams.

stream = multiplex.createStream([id], [options])

Creates a new sub-stream with an optional whole string id (default is the stream channel id).

Sub-streams are duplex streams.

Options include:

  • opts.chunked - enables chunked mode on all streams (message framing not guaranteed)
  • opts.halfOpen - make channels support half open mode meaning that they can be readable but not writable and vice versa

stream = multiplex.receiveStream(id, [options])

Explicitly receive an incoming stream.

This is useful if you have a function that accepts an instance of multiplex
and you want to receive a substream.

stream = multiplex.createSharedStream(id, [options])

Create a shared stream. If both ends create a shared stream with
the same id, writing data on one end will emit the same data on the other end

events

multiplex.on('error', function (err) {})

Emitted when the outer stream encounters invalid data

multiplex.on('stream', function (stream, id) {})

Emitted when a it a new stream arrives.

stream.on('error', function (err) {})

Emitted if the inner stream is destroyed with an error

example

var multiplex = require('multiplex')
var plex1 = multiplex()
var stream1 = plex1.createStream()
var stream2 = plex1.createStream()

var plex2 = multiplex(function onStream(stream, id) {
  stream.on('data', function(c) {
    console.log('data', id, c.toString())
  })
})

plex1.pipe(plex2)

stream1.write(new Buffer('stream one!'))
stream2.write(new Buffer('stream two!'))

contributing

multiplex is an OPEN Open Source Project. This means that:

Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.

See the CONTRIBUTING.md file for more details.

contributors

multiplex is only possible due to the excellent work of the following contributors:

主要指标

概览
名称与所有者max-mapper/multiplex
主编程语言JavaScript
编程语言JavaScript (语言数: 1)
平台
许可证
所有者活动
创建于2013-12-19 04:19:01
推送于2018-07-08 17:12:29
最后一次提交2016-03-06 16:54:08
发布数20
最新版本名称v6.7.0 (发布于 2016-03-06 16:54:08)
第一版名称v4.0.0 (发布于 2014-11-09 23:03:51)
用户参与
星数143
关注者数11
派生数24
提交数99
已启用问题?
问题数20
打开的问题数8
拉请求数11
打开的拉请求数3
关闭的拉请求数4
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?