streamr-chunker
v0.1.2
Published
StreamrChunker is an abstraction layer for the Streamr Network, enabling seamless transmission of objects of any size. Small messages are wrapped and sent with minimal overhead, while larger messages are chunked and reassembled upon receipt.
Downloads
11
Maintainers
Readme
StreamrChunker
StreamrChunker is an abstraction layer between the Streamr Network and your code, allowing you to send objects of any size over the Streamr Network. It handles small messages with minimal overhead, while larger messages are automatically chunked into smaller pieces. Upon receiving the data, the chunks are reassembled for your use.
Installation
Install StreamrChunker using npm:
npm install streamr-chunker
How to use
Here is an example of how to use StreamrChunker:
import { StreamrChunker } from 'streamr-chunker';
import { StreamrClient } from 'streamr-client';
const streamrCli = new StreamrClient({
auth: {
privateKey: "privatekey",
}
})
streamrCli.subscribe({
id: this.streamUrl,
});
const streamrChunker = new StreamrChunker()
.withDeviceId()
.withIgnoreOwnMessages();
// Send a message of any size over the Streamr Network using StreamrChunker
streamrChunker.publish({ key: 'longMessage'.repeat(10000) });
// Receive a message from StreamrChunker. It comes through in the same format as you sent it.
streamrChunker.on('message', (message) => {
// ... Handle a received message in your application
// receives message as you sent it, e.g. { key: 'longMessagelongMessagelongMessage...' }
});
// Pass the messages from StreamrChunker to StreamrClient
streamrChunker.on('publish', (message) => {
streamrCli.publish(message);
});
Contributing
Contributions are welcome! Please submit a pull request or create an issue for any bug reports or feature requests.