This is the javascript sdk package required to create a javascript tap server responsible for the audio of zako, a discord audio bot.
First, you need to download tap-sdk-js on your project.
npm install tap-sdk-js
+
+
+Then, you can use the sdk. +Here is some example.
+import { createClient } from "tap-sdk-js";
const client = createClient({
name: "your zako tap server name",
token: "your zako tap server token",
zakoEndpoint: "zako endpoint (default is https://api.zako.ac)",
});
client.events.on("ready", () => {
console.log("ready");
});
client.events.on("request", (handle) => {
const { data, parameters } = handle;
// data is the actual data to handle.
// to respond the stream
handle.respond(/* stream here */);
// call this on error
handle.respondError("error message");
});
client.events.on("connectionError", (e) => {
console.error(e);
});
client.events.on("error", (e) => {
console.error(e);
});
client.connect();
+
+
+You can create tap server client by call createClient function in tap-sdk-js package.
You should put the client data written as ZakoTapConfig type inside the argument of createClient.
You can then connect to the tab server using client.connect().
import { createClient } from "zako-sdk-js"
const client = createClient({
name: "your zako tap server name",
token: "your zako tap server token",
zakoEndpoint: "zako endpoint (option)"
backoffBaseMs: "loop waiting time (option)";
});
client.connect();
+
+
+Using the client created above, you can use client.on to perform a specific function when the EventEmitter's event is called.
+client.events.on("event name", function)
+
+
+The types of events are specified in TapEvents among the types in the zakotap package.
+ready: This event is called when the zako tap server successfully connects to the zako tap hub.request: This event is called when an audio request is received from the zako tap hub.connectionError: This event is called when an connection error occurs within the zakotap package.error: This event is called when an error occurs within the zakotap package.You can send your audio stream by using handle.respond() function.
handle.respond("your audio stream");
+
+
+You can get audio request handle from request event parameter. If you don't send an audio stream, your tap server will be considered offline and you may be disconnected.
sequenceDiagram
+ participant TapServer
+ participant TapHub
+
+ TapServer->>TapHub: WS TapHello
+ TapHub-->>TapServer: WS TapResponse
+ Note right of TapServer: Waiting for audio request
+ TapHub-->>TapServer: WS AudioRequest
+ TapServer->>TapHub: POST AudioStream
+
+
+ruma0607)Represents client options of ZakoTapClient.
+OptionalbackoffMilliseconds of backoff retry.
+If the connection errored, the client retries after backoffBaseMs * 2^(Number of consecutive failures) milliseconds.
The name of the tap.
+Assigned API key of the tap.
+OptionalzakoZako TapHub API endpoint. (optional)
+Represents handle with audio request information and respond function.
+Represents all events of Tap Client.
+Represents a handle to the Zako Tap client.
+This object provides methods and event handling capabilities +for interacting with the Zako Tap system.
+
Creates a ZakoTap client handle.
+