Never Push Mistakes

    unicast

    1.2.0 • Public • Published

    unicast

    Build Status npm node license downloads Coverage Status

    Unicast implementation of UDP Datagram sockets.

    Usage

    const unicast = require('unicast')
    const fs = require('fs')
     
    const socket = unicast.createSocket({
      type: 'udp4',
      port: 2222,
      remotePort: 1111,
      remoteAddress: '127.0.0.1'
    })
     
    // now the `socket` can receive packets ONLY
    // from 127.0.0.1:1111
     
    socket.pipe(fs.createWriteStream('log.txt', { encoding: 'utf8' }))

    API

    • createSocket(socket: dgram.Socket, options: Options): Socket
    • createSocket(options: Options): Socket

    Creates an unicast UDP Datagram socket. A createSocket() function also accept all options for dgram.createSocket(). If socket is provided, these options will be ignored.

    • options.remotePort: number

    The numeric representation of the remote port.

    • options.remoteAddress: string

    The string representation of the remote IP address.

    • options.socket: dgram.Socket

    An optional internal dgram socket used as transport layer.

    • options.port: number [default = 0]

    The string representation of the local IP address. If port is not specified or is 0, the operating system will attempt to bind to a random port.

    • options.address: string [default = 0.0.0.0]

    The string representation of the local IP address. If address is not specified or is 0.0.0.0, the operating system will attempt to listen on all addresses.

    • options.closeTransport: boolean [default = true]

    The internal socket will be closed when the unicast.Socket is being closed. You can change this behavior with this option.

    • options.messagesFilter: function(socket: Socket, message: Buffer, rinfo: Object): bool

    Custom filter of an incoming messages. By default it check the remote IP address and the remote port.

    • class Socket

    This class is an abstraction of an unicast UDP socket. A Socket is also a duplex stream, so it can be both readable and writable, and it is also a EventEmitter.

    • socket.close()

    Close the underlying socket and stop listening for data on it.

    • socket.unshift(message: Buffer): bool

    The socket.unshift() method pushes a chunk of data back into the internal buffer. This is useful in certain situations where a stream is being consumed by code that needs to "un-consume" some amount of data that it has optimistically pulled out of the source, so that the data can be passed on to some other party.

    • socket.process(message: Buffer): bool

    The socket.process() method helps to handle a chunk of data from an another source. Almost the same as socket.unshift() but pushes a chunk of data into the end of the internal buffer.

    • socket.localAddress: string

    The string representation of the local IP address. For example, 74.125.127.100 or 2001:4860:a005::68.

    • socket.localPort: number

    The numeric representation of the local port. For example, 80 or 21.

    • get/set socket.remoteAddress: string

    The string representation of the remote IP address. For example, 74.125.127.100 or 2001:4860:a005::68.

    • get/set socket.remotePort: number

    The numeric representation of the remote port. For example, 80 or 21.

    License

    MIT, 20!8 (c) Dmitriy Tsvettsikh

    Install

    npm i unicast

    DownloadsWeekly Downloads

    20

    Version

    1.2.0

    License

    MIT

    Unpacked Size

    23.3 kB

    Total Files

    17

    Last publish

    Collaborators

    • reklatsmasters