mirror of https://gitee.com/openkylin/nodejs.git
49 lines
992 B
JavaScript
49 lines
992 B
JavaScript
'use strict';
|
|
|
|
const {
|
|
hasCrypto,
|
|
mustCall,
|
|
skip
|
|
} = require('../common');
|
|
if (!hasCrypto)
|
|
skip('missing crypto');
|
|
|
|
const {
|
|
deepStrictEqual
|
|
} = require('assert');
|
|
const {
|
|
createServer,
|
|
connect
|
|
} = require('http2');
|
|
|
|
const check = Buffer.from([ 1, 2, 3, 4, 5, 6, 7, 8 ]);
|
|
|
|
const server = createServer();
|
|
server.on('stream', mustCall((stream) => {
|
|
stream.respond();
|
|
stream.end('ok');
|
|
}));
|
|
server.on('session', mustCall((session) => {
|
|
session.on('ping', mustCall((payload) => {
|
|
deepStrictEqual(check, payload);
|
|
}));
|
|
session.ping(check, mustCall());
|
|
}));
|
|
server.listen(0, mustCall(() => {
|
|
const client = connect(`http://localhost:${server.address().port}`);
|
|
|
|
client.on('ping', mustCall((payload) => {
|
|
deepStrictEqual(check, payload);
|
|
}));
|
|
client.on('connect', mustCall(() => {
|
|
client.ping(check, mustCall());
|
|
}));
|
|
|
|
const req = client.request();
|
|
req.resume();
|
|
req.on('close', mustCall(() => {
|
|
client.close();
|
|
server.close();
|
|
}));
|
|
}));
|