wechaty-grpc
Version:
gRPC for Wechaty
52 lines • 1.99 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.testDing = void 0;
const fs_1 = __importDefault(require("fs"));
const mod_js_1 = require("../../src/mod.js");
const promisify_js_1 = require("../promisify.js");
async function testDing(client) {
const ding = (0, promisify_js_1.promisify)(client.ding.bind(client));
const dingRequest = new mod_js_1.puppet.DingRequest();
dingRequest.setData('dingdong');
try {
// const metadata = new Metadata()
// metadata.set('grpc.default_authority', 'puppet_token')
await ding(dingRequest /* metadata */);
}
catch (e) {
console.error(e);
}
}
exports.testDing = testDing;
async function main() {
const TOKEN = '__token__';
void TOKEN;
const rootCerts = fs_1.default.readFileSync('root-ca.crt');
/**
* With server authentication SSL/TLS and a custom header with token
* https://grpc.io/docs/guides/auth/#with-server-authentication-ssltls-and-a-custom-header-with-token-1
*/
const metaCallback = (_params, callback) => {
const meta = new mod_js_1.grpc.Metadata();
// metadata.add('authorization', `Wechaty ${TOKEN}`)
callback(null, meta);
};
const channelCred = mod_js_1.grpc.credentials.createSsl(rootCerts);
const callCred = mod_js_1.grpc.credentials.createFromMetadataGenerator(metaCallback);
const combCreds = mod_js_1.grpc.credentials.combineChannelCredentials(channelCred, callCred);
const client = new mod_js_1.puppet.PuppetClient('localhost:8788', combCreds, {
'grpc.default_authority': '__token__',
'grpc.ssl_target_name_override': 'wechaty-puppet-service',
});
await testDing(client);
return 0;
}
main()
.catch(e => {
console.error(e);
process.exit(1);
});
//# sourceMappingURL=client.js.map