Newer
Older
// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');
const path = require('path');
const PROTO_PATH = path.resolve(__dirname, '../proto/dlt_gateway.proto');
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
const packageDefinition = protoLoader.loadSync(PROTO_PATH, {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
});
const dltProto = grpc.loadPackageDefinition(packageDefinition).dlt;
const client = new dltProto.DltGatewayService(
'10.1.1.96:32001',
grpc.credentials.createInsecure()
);
function subscribeToDlt() {
const request = {
// Define any necessary subscription filters here if applicable
};
const call = client.SubscribeToDlt(request);
call.on('data', (event) => {
console.log('Received event:', event);
});
call.on('error', (error) => {
console.error('Error:', error.message);
});
call.on('end', () => {
console.log('Stream ended.');
});
// Optionally, you can cancel the subscription after a certain time or condition
setTimeout(() => {
console.log('Cancelling subscription...');
call.cancel();
}, 600000); // Cancel after 1 minute for demonstration purposes
}
function runTests() {
console.log("Testing subscription to DLT events");
subscribeToDlt();
}
runTests();