Detects the ALPN protocol
npm install resolve-alpnresolve-alpn

Returns an object with an alpnProtocol property. The socket property may be also present.
``js
const result = await resolveALPN({
host: 'nghttp2.org',
port: 443,
ALPNProtocols: ['h2', 'http/1.1'],
servername: 'nghttp2.org'
});
console.log(result); // {alpnProtocol: 'h2'}
`
Note: While the servername option is not required in this case, many other servers do. It's best practice to set it anyway.
Note: If the socket times out, the promise will resolve and result.timeout will be set to true.
#### options
Same as TLS options.
##### options.resolveSocket
By default, the socket gets destroyed and the promise resolves.
If you set this to true, it will return the socket in a socket property.
`js
const result = await resolveALPN({
host: 'nghttp2.org',
port: 443,
ALPNProtocols: ['h2', 'http/1.1'],
servername: 'nghttp2.org',
resolveSocket: true
});
console.log(result); // {alpnProtocol: 'h2', socket: tls.TLSSocket}
// Remember to destroy the socket if you don't use it!
result.socket.destroy();
`
#### connect
Type: Function\tls.connect
Default:
Note: No matter which function is used (synchronous or asynchronous), it must accept a callback function as a second argument. The callback` function gets executed when the socket has successfully connected.
MIT