socket.emitter

1.2.0 • Public • Published

Socket.Emitter

Socket.Emitter has already changed name to Socket-Emitter, please use Socket-Emitter instead.

A TCP Socket Tool, it make sending a message by tcp just like emitting an event.

It can send most common type of data without any extra work.

It's able to send large data.

Server Example:

var Server = require('socket.emitter').Server;

var PORT = 3766;

var server = new Server();
server.on('connection', function(socket) {
  console.log('[Server]New Connection');

  socket.on('message', function(message) {
    console.log(message);
    // message will be 2
  });

  socket.emit('sendString', 'hello world');

  socket.emit('sendObject', {
    message: '123',
    count: 23
  });

  var buffer = new Buffer(4);
  buffer.writeUInt32BE(0x1234, 0);
  socket.emit('sendBuffer', buffer);

  socket.emit('endSend');
});
server.listen(PORT, function() {
  console.log('Server Started');
});

Client Example:

var Client = require('socket.emitter').Client;

var PORT = 3766;

var client = new Client();
client.connect(PORT, 'localhost', function() {
  console.log('Client Connected');
  client.emit('message', 2);
});

client.on('sendString', function(message) {
  console.log(message);
  // message will be ‘hello world’
});

client.on('sendObject', function(message) {
  console.log('message');
  // message will be {message: '123', count: 23}
});

client.on('sendBuffer', function(message) {
  console.log(message);
  // message will be <Buffer 00 00 12 34>
});

client.on('endSend', function(message) {
  console.log(message);
  // message will be {}
  client.close(function() {
    console.log('Client Closed');
  });
});

Sample API

new Server([options])

Create a Server instance with options.

options

Type: Object

options.compress

If options.compress is equal to 'zlib', socket will compress data before send.

Sometimes it will be slower than sending data without compress.

new Client([options])

Create a Server instance with options, options is same as above.

Server.listen

Is same as net.Server.listen.

Client.connect

Is same as net.Socket.connect.

Socket.emit(event[, arg][, callback])

Method to send data.

event

Type: String

arg

Type: String | Buffer | Object | Other

If the type of arg is Object or Other, the data to be sent is JSON.stringify(arg), and will be receive as JSON.parse(data).

callback

Type: Function()

Callback will be called when the data had be received by receiver.

Socket.on(event, listener)

Method to receive data.

event

Type: String

listener

Type: Function(arg)

Function will be called when socket has received a data and event is same as sender's event argument.

Package Sidebar

Install

npm i socket.emitter

Weekly Downloads

0

Version

1.2.0

License

BSD-2-Clause

Last publish

Collaborators

  • chenyu