Expose us_socket_local_port
(#547)
Usage: ```ts const token: us_socket_t; const port = uWS.us_socket_local_port(token); ```
This commit is contained in:
parent
6d88f857d0
commit
9b3efbdfa3
20
examples/AutomaticPortSelection.js
vendored
Normal file
20
examples/AutomaticPortSelection.js
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* Same as HelloWorld, but with automatic port selection. */
|
||||||
|
|
||||||
|
const uWS = require('../dist/uws.js');
|
||||||
|
let port = 0;
|
||||||
|
|
||||||
|
const app = uWS./*SSL*/App({
|
||||||
|
key_file_name: 'misc/key.pem',
|
||||||
|
cert_file_name: 'misc/cert.pem',
|
||||||
|
passphrase: '1234'
|
||||||
|
}).get('/*', (res, req) => {
|
||||||
|
res.end('Hello World!');
|
||||||
|
}).listen(port, (token) => {
|
||||||
|
if (token) {
|
||||||
|
// retrieve listening port
|
||||||
|
port = uWS.us_socket_local_port(token);
|
||||||
|
console.log('Listening to port ' + port);
|
||||||
|
} else {
|
||||||
|
console.log('Failed finding available port');
|
||||||
|
}
|
||||||
|
});
|
@ -127,6 +127,12 @@ void uWS_us_listen_socket_close(const FunctionCallbackInfo<Value> &args) {
|
|||||||
us_listen_socket_close(0, (struct us_listen_socket_t *) External::Cast(*args[0])->Value());
|
us_listen_socket_close(0, (struct us_listen_socket_t *) External::Cast(*args[0])->Value());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void uWS_us_socket_local_port(const FunctionCallbackInfo<Value> &args) {
|
||||||
|
// this should take int ssl first, but us_socket_local_port doesn't use it so it doesn't matter
|
||||||
|
int port = us_socket_local_port(0, (struct us_socket_t *) External::Cast(*args[0])->Value());
|
||||||
|
args.GetReturnValue().Set(Integer::New(args.GetIsolate(), port));
|
||||||
|
}
|
||||||
|
|
||||||
/* Temporary KV store (doesn't belong here) */
|
/* Temporary KV store (doesn't belong here) */
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -365,6 +371,7 @@ PerContextData *Main(Local<Object> exports) {
|
|||||||
|
|
||||||
/* Expose some µSockets functions directly under uWS namespace */
|
/* Expose some µSockets functions directly under uWS namespace */
|
||||||
exports->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "us_listen_socket_close", NewStringType::kNormal).ToLocalChecked(), FunctionTemplate::New(isolate, uWS_us_listen_socket_close)->GetFunction(isolate->GetCurrentContext()).ToLocalChecked()).ToChecked();
|
exports->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "us_listen_socket_close", NewStringType::kNormal).ToLocalChecked(), FunctionTemplate::New(isolate, uWS_us_listen_socket_close)->GetFunction(isolate->GetCurrentContext()).ToLocalChecked()).ToChecked();
|
||||||
|
exports->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "us_socket_local_port", NewStringType::kNormal).ToLocalChecked(), FunctionTemplate::New(isolate, uWS_us_socket_local_port)->GetFunction(isolate->GetCurrentContext()).ToLocalChecked()).ToChecked();
|
||||||
|
|
||||||
/* Compression enum */
|
/* Compression enum */
|
||||||
exports->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "DISABLED", NewStringType::kNormal).ToLocalChecked(), Integer::NewFromUnsigned(isolate, uWS::DISABLED)).ToChecked();
|
exports->Set(isolate->GetCurrentContext(), String::NewFromUtf8(isolate, "DISABLED", NewStringType::kNormal).ToLocalChecked(), Integer::NewFromUnsigned(isolate, uWS::DISABLED)).ToChecked();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user