TCP wrapper for NodeJS sockets to use STOMP over TCP with @stomp/stompjs and @stomp/rx-stomp
npm install @stomp/tcp-wrapperThis repository contains a wrapper that allows using Node.js TCP sockets to be used with the [@stomp/rx-stomp] and [@stomp/stompjs] libraries for STOMP over TCP communication.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Node.js
- [@stomp/rx-stomp] or [@stomp/stompjs]
``bash`
$ npm i @stomp/tcp-wrapper
In addition, you must install one of [@stomp/rx-stomp] or [@stomp/stompjs].
#### With [@stomp/rx-stomp]
`javascript
import { TCPWrapper } from '@stomp/tcp-wrapper';
import { RxStomp } from '@stomp/rx-stomp';
const rxStomp = new RxStomp();
rxStomp.configure({
// hostname (or ip addess) and port number of the STOMP broker
webSocketFactory: () => new TCPWrapper('127.0.0.1', 61613),
heartbeatOutgoing: 20000,
heartbeatIncoming: 20000,
debug: console.log,
});
const subscription = rxStomp
.watch({ destination: '/topic/test-rx' })
.subscribe(message => console.log(message.body));
rxStomp.activate();
rxStomp.publish({
destination: '/topic/test-rx',
body: 'First message to RxStomp',
});
setTimeout(async () => {
subscription.unsubscribe();
await rxStomp.deactivate();
}, 3000);
`
#### With [@stomp/stompjs]
`javascript
import { Client } from '@stomp/stompjs';
import { TCPWrapper } from '@stomp/tcp-wrapper';
const client = new Client({
// hostname (or ip addess) and port number of the STOMP broker
webSocketFactory: () => new TCPWrapper('127.0.0.1', 61613),
heartbeatOutgoing: 20000,
heartbeatIncoming: 20000,
debug: console.log,
onConnect: () => {
client.subscribe('/topic/test01', message =>
console.log(Received: ${message.binaryBody})
);
client.publish({ destination: '/topic/test01', body: 'First Message' });
},
});
client.activate();
setTimeout(() => client.deactivate(), 3000);
``
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning. For the versions available, see the tags on this repository.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
[@stomp/stompjs]: https://github.com/stomp-js/stompjs
[@stomp/rx-stomp]: https://github.com/stomp-js/rx-stomp