UNPKG

@juzi/wechaty

Version:

Wechaty is a RPA SDK for Chatbot Makers.

78 lines 2.7 kB
/** * Wechaty Chatbot SDK - https://github.com/wechaty/wechaty * * @copyright 2016 Huan LI (李卓桓) <https://github.com/huan>, and * Wechaty Contributors <https://github.com/wechaty>. * * 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. * */ import { createServer, Socket, } from 'net'; import { spawnSync as spawn } from 'child_process'; import { log, } from '@juzi/wechaty-puppet'; export class Doctor { constructor() { log.verbose('Doctor', 'constructor()'); } chromedriverVersion() { let version; try { const cmd = spawn('chromedriver', ['--version']); version = String(cmd.error) || cmd.stdout.toString() || cmd.stderr.toString(); } catch (e) { version = e.message; } return version; } /** * https://gist.github.com/tedmiston/5935757 */ testTcp() { log.verbose('Doctor', 'testTcp()'); return new Promise((resolve, reject) => { /** * Server */ const server = createServer(socket => socket.pipe(socket)); /** * Promise Reject */ server.on('error', reject); server.on('close', () => log.silly('Doctor', 'testTcp() server closed')); server.listen(8788, 'localhost', () => { /** * Client */ const client = new Socket(); client.connect(8788, 'localhost', () => { log.silly('Doctor', 'testTcp() client connected'); client.write('ding'); }); client.on('data', () => { /** * Promise Resolve */ resolve(true); client.destroy(); // kill client after server's response }); /** * Promise Reject */ client.on('error', reject); client.on('close', () => server.close()); }); }); } } //# sourceMappingURL=doctor.js.map