node-srt/examples/async-srt.js
Stephan Hesse 074da05097
Worker-based Async API with await/Promise support (or plain callbacks) (#6)
* fix lint errors in eslint config :)

* index.d.s: add /* eslint-disable @typescript-eslint/triple-slash-reference */

* improve eslint calling script

* add async-worker version of the SRT JS API with await/Promise support
+ potentially out-of-order RPC-back/result-dequeuing is possible
with a type of call-ID generator and callback-map that we prototyped
(but not used atm since the worker is only doing sync/blocking internally
with the current SRT lib binding).

* add various examples for async API ("classic" callbacks / Promise / await)

* add .eslintignore (should go with commit where we just call "eslint .")

* index.js: add missing semi

* async.js: fix method name litteral in epollUWait

* async.js: allow for accept method to use a timeout opt (defaults to false),
and a custom timeout value option (default to default timeout),
which can potentially be set differently than the general default timeout.
+ make the timeout value a static class property so that it can be
user-defined module-load wide. defaults to constant in module top scope.

* async.js: fix for a rejected promise, make sure we don't resolve anymore
+ add a custom timeout value argument to _createAsyncWorkPromise

* async.js: rm an experiment

* fix a lint error in example

* add types for async api and fix some details on binding API types

* export async API to index

* async.js: add some missing docs for private methods

* include async types in index
2020-08-03 09:54:26 +02:00

25 lines
564 B
JavaScript

"use strict";
const { AsyncSRT } = require('../src/async.js');
const asyncSrt = new AsyncSRT();
asyncSrt.createSocket(false, (result) => {
console.log('createSocket:', result);
const socket = result;
asyncSrt.bind(socket, "0.0.0.0", 1234, (result) => {
if (result !== 0) {
console.log('Failed bind');
} else {
console.log('Bind success');
asyncSrt.listen(socket, 2, (result) => {
if (!result) {
console.log("Listen success");
} else {
console.log(result);
}
});
}
});
});