@azure/web-pubsub-client-protobuf 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -0
- package/dist/index.js +4392 -0
- package/dist/index.js.map +1 -0
- package/dist-esm/samples-dev/basicusage.js +63 -0
- package/dist-esm/samples-dev/basicusage.js.map +1 -0
- package/dist-esm/src/generated/clientProto.js +4137 -0
- package/dist-esm/src/index.js +17 -0
- package/dist-esm/src/index.js.map +1 -0
- package/dist-esm/src/logger.js +8 -0
- package/dist-esm/src/logger.js.map +1 -0
- package/dist-esm/src/webPubSubProtobufProtocol.js +33 -0
- package/dist-esm/src/webPubSubProtobufProtocol.js.map +1 -0
- package/dist-esm/src/webPubSubProtobufProtocolBase.js +187 -0
- package/dist-esm/src/webPubSubProtobufProtocolBase.js.map +1 -0
- package/dist-esm/src/webPubSubProtobufReliableProtocol.js +33 -0
- package/dist-esm/src/webPubSubProtobufReliableProtocol.js.map +1 -0
- package/dist-esm/test/client.spec.js +294 -0
- package/dist-esm/test/client.spec.js.map +1 -0
- package/package.json +123 -0
- package/types/web-pubsub-client-protobuf.d.ts +13 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT license.
|
|
3
|
+
/**
|
|
4
|
+
* @summary Basic usage of web-pubsub-client
|
|
5
|
+
*/
|
|
6
|
+
import { WebPubSubClient, } from "@azure/web-pubsub-client";
|
|
7
|
+
import { WebPubSubProtobufReliableProtocol } from "@azure/web-pubsub-client-protobuf";
|
|
8
|
+
import { WebPubSubServiceClient } from "@azure/web-pubsub";
|
|
9
|
+
require("dotenv").config();
|
|
10
|
+
const hubName = "sample_chat";
|
|
11
|
+
const groupName = "testGroup";
|
|
12
|
+
const serviceClient = new WebPubSubServiceClient(process.env.WPS_CONNECTION_STRING, hubName);
|
|
13
|
+
const fetchClientAccessUrl = async (_) => {
|
|
14
|
+
return (await serviceClient.getClientAccessToken({
|
|
15
|
+
roles: [`webpubsub.joinLeaveGroup.${groupName}`, `webpubsub.sendToGroup.${groupName}`],
|
|
16
|
+
})).url;
|
|
17
|
+
};
|
|
18
|
+
async function main() {
|
|
19
|
+
let client = new WebPubSubClient({
|
|
20
|
+
getClientAccessUrl: fetchClientAccessUrl,
|
|
21
|
+
}, { protocol: WebPubSubProtobufReliableProtocol() });
|
|
22
|
+
client.on("connected", (e) => {
|
|
23
|
+
console.log(`Connection ${e.connectionId} is connected.`);
|
|
24
|
+
});
|
|
25
|
+
client.on("disconnected", (e) => {
|
|
26
|
+
console.log(`Connection disconnected: ${e.message}`);
|
|
27
|
+
});
|
|
28
|
+
client.on("server-message", (e) => {
|
|
29
|
+
if (e.message.data instanceof ArrayBuffer) {
|
|
30
|
+
console.log(`Received message ${Buffer.from(e.message.data).toString("base64")}`);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
console.log(`Received message ${e.message.data}`);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
client.on("group-message", (e) => {
|
|
37
|
+
if (e.message.data instanceof ArrayBuffer) {
|
|
38
|
+
console.log(`Received message from ${e.message.group} ${Buffer.from(e.message.data).toString("base64")}`);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log(`Received message from ${e.message.group} ${e.message.data}`);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
await client.start();
|
|
45
|
+
await client.joinGroup(groupName);
|
|
46
|
+
await client.sendToGroup(groupName, "hello world", "text", {
|
|
47
|
+
fireAndForget: true,
|
|
48
|
+
});
|
|
49
|
+
await client.sendToGroup(groupName, { a: 12, b: "hello" }, "json");
|
|
50
|
+
await client.sendToGroup(groupName, "hello json", "json");
|
|
51
|
+
var buf = Buffer.from("aGVsbG9w", "base64");
|
|
52
|
+
await client.sendToGroup(groupName, buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength), "binary");
|
|
53
|
+
await delay(1000);
|
|
54
|
+
await client.stop();
|
|
55
|
+
}
|
|
56
|
+
main().catch((e) => {
|
|
57
|
+
console.error("Sample encountered an error", e);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
});
|
|
60
|
+
function delay(ms) {
|
|
61
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=basicusage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicusage.js","sourceRoot":"","sources":["../../samples-dev/basicusage.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * @summary Basic usage of web-pubsub-client\n */\n\nimport {\n WebPubSubClient,\n WebPubSubClientCredential,\n SendToGroupOptions,\n GetClientAccessUrlOptions,\n WebPubSubClientOptions,\n} from \"@azure/web-pubsub-client\";\nimport { WebPubSubProtobufReliableProtocol } from \"@azure/web-pubsub-client-protobuf\";\nimport { WebPubSubServiceClient } from \"@azure/web-pubsub\";\n\nrequire(\"dotenv\").config();\n\nconst hubName = \"sample_chat\";\nconst groupName = \"testGroup\";\nconst serviceClient = new WebPubSubServiceClient(process.env.WPS_CONNECTION_STRING!, hubName);\n\nconst fetchClientAccessUrl = async (_: GetClientAccessUrlOptions) => {\n return (\n await serviceClient.getClientAccessToken({\n roles: [`webpubsub.joinLeaveGroup.${groupName}`, `webpubsub.sendToGroup.${groupName}`],\n })\n ).url;\n};\n\nasync function main() {\n let client = new WebPubSubClient(\n {\n getClientAccessUrl: fetchClientAccessUrl,\n } as WebPubSubClientCredential,\n { protocol: WebPubSubProtobufReliableProtocol() } as WebPubSubClientOptions\n );\n\n client.on(\"connected\", (e) => {\n console.log(`Connection ${e.connectionId} is connected.`);\n });\n\n client.on(\"disconnected\", (e) => {\n console.log(`Connection disconnected: ${e.message}`);\n });\n\n client.on(\"server-message\", (e) => {\n if (e.message.data instanceof ArrayBuffer) {\n console.log(`Received message ${Buffer.from(e.message.data).toString(\"base64\")}`);\n } else {\n console.log(`Received message ${e.message.data}`);\n }\n });\n\n client.on(\"group-message\", (e) => {\n if (e.message.data instanceof ArrayBuffer) {\n console.log(\n `Received message from ${e.message.group} ${Buffer.from(e.message.data).toString(\"base64\")}`\n );\n } else {\n console.log(`Received message from ${e.message.group} ${e.message.data}`);\n }\n });\n\n await client.start();\n\n await client.joinGroup(groupName);\n await client.sendToGroup(groupName, \"hello world\", \"text\", {\n fireAndForget: true,\n } as SendToGroupOptions);\n await client.sendToGroup(groupName, { a: 12, b: \"hello\" }, \"json\");\n await client.sendToGroup(groupName, \"hello json\", \"json\");\n var buf = Buffer.from(\"aGVsbG9w\", \"base64\");\n await client.sendToGroup(\n groupName,\n buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength),\n \"binary\"\n );\n await delay(1000);\n await client.stop();\n}\n\nmain().catch((e) => {\n console.error(\"Sample encountered an error\", e);\n process.exit(1);\n});\n\nfunction delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n"]}
|