Socket
Book a DemoInstallSign in
Socket

conversation-stream

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

conversation-stream

json conversations over a stream

latest
Source
npmnpm
Version
0.1.1
Version published
Maintainers
1
Created
Source

Conversation-Stream

Conversation-Stream allows you to have a JSON conversation over a stream.

npm install conversation-stream

Summary

To listen for messages you just need to listen to the message event

var cs = require('conversation-stream')
var conversation = cs();

fromStream.pipe(conversation).pipe(fromStream);

conversation.on('message', function(message, respond) {
	respond(null, {echo:message}); // send a reply back if you want to
});

To send messages you call conversation.send(message) To send messages and wait for a reply you call conversation.send(message, callback)

var cs = require('conversation-stream');
var conversation = cs();

toStream.pipe(conversation).pipe(toStream);

conversation.send('hello', function(err, reply) {
	console.log(err, reply); // prints {echo:'hello'}
});

conversation.send('world', function(err, reply) {
	console.log(err, reply); // prints {echo:'world'}
});

Example

Lets try to setup a simple server

var cs = require('conversation-stream');
var net = require('net');

net.createServer(function(socket) {
	var conversation = cs();

	socket.pipe(conversation).pipe(socket);

	conversation.on('message', function(message, respond) {
		conversation.send({server:message}, respond);
	});
}).listen(9000);

To start a conversation to the server we need to create a socket to the server and pipe our message to that.

var socket = net.connect(9000);
var conversation = cs();

socket.pipe(conversation).pipe(socket);

conversation.on('message', function(message, respond) {
	respond(null, {client:message});
});

conversation.send('echo me please', function(err, reply) {
	console.log(err, reply);  // prints {client:{server:'echo me please'}}
});
conversation.send('echo me please again', function(err, reply) {
	console.log(err, reply); // prints {client:{server:'echo me please again'}}
});

If we wanted to use tls instead of tcp we could just have implemented the above example using tls streams. We could even use WebSockets using shoe.

Keywords

stream

FAQs

Package last updated on 08 Dec 2012

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts