krtp
Version:
Node implementation of rtp protocol. RFC 3550
57 lines (51 loc) • 1.53 kB
text/typescript
/*
* +===============================================
* | Author: Parham Alvani (parham.alvani@gmail.com)
* |
* | Creation Date: 02-06-2017
* |
* | File Name: test.js
* +===============================================
*/
import * as assert from "assert";
import { range } from "rxjs";
import { filter } from "rxjs/operators";
import { Session } from "../lib";
import { Packet } from "../lib";
describe("RTPSession", () => {
test("packet send-recieve serialize-deserialize", (done) => {
const s = new Session(1373);
s.on("message", (msg: Packet) => {
assert.equal(s.sequenceNumber, msg.sequenceNumber + 1);
assert.equal(s.ssrc, msg.ssrc);
assert.equal("Hello world", msg.payload.toString());
s.close();
done();
});
s.send(Buffer.from("Hello world")).catch((err) => {
done(err);
});
});
test("rxjs", (done) => {
const s = new Session(1372, 72);
const initialSequenceNumber = s.sequenceNumber;
s.message$
.pipe(filter((msg) => msg.sequenceNumber === initialSequenceNumber + 9))
.subscribe({
next: (msg) => {
assert.equal(72, msg.payloadType);
assert.equal("Hello world of rxjs - 10", msg.payload.toString());
s.close();
done();
},
error: (err) => {
done(err);
},
});
range(1, 10).subscribe((i: number) => {
s.send(Buffer.from(`Hello world of rxjs - ${i}`)).catch((err) => {
done(err);
});
});
});
});