Class: Up::Node::Server
- Inherits:
-
Object
- Object
- Up::Node::Server
- Defined in:
- lib/up/node/server.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#initialize(app:, host: 'localhost', port: 3000, scheme: 'http', ca_file: nil, cert_file: nil, key_file: nil) ⇒ Server
constructor
A new instance of Server.
- #listen ⇒ Object
- #stop ⇒ Object
Constructor Details
#initialize(app:, host: 'localhost', port: 3000, scheme: 'http', ca_file: nil, cert_file: nil, key_file: nil) ⇒ Server
Returns a new instance of Server.
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/up/node/server.rb', line 15 def initialize(app:, host: 'localhost', port: 3000, scheme: 'http', ca_file: nil, cert_file: nil, key_file: nil) @app = app @scheme = scheme || 'http' raise "unsupported scheme #{@scheme}" unless %w[http https].include?(@scheme) @host = host || 'localhost' @port = port&.to_i || 3000 @config = { handler: self.class.name, engine: "node/#{`process.version`}", port: port, scheme: scheme, host: host }.freeze @ca_file = ca_file @cert_file = cert_file @key_file = key_file @server = nil end |
Instance Method Details
#listen ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/up/node/server.rb', line 55 def listen raise "already running" if @server %x{ const ounr = Opal.Up.Node.RackEnv; const ouns = Opal.Up.Node.Server; function handler(req, res) { const rack_res = #@app.$call(ounr.$new(req, #@config)); res.statusCode = rack_res[0]; ouns.handle_headers(rack_res[1], res); ouns.handle_response(rack_res[2], res); res.end(); } if (#@scheme == 'https') { #@server = https.createServer({ ca: fs.readFileSync(#@ca_file), cert: fs.readFileSync(#@cert_file), key: fs.readFileSync(#@key_file) }, handler); } else { #@server = http.createServer(handler); } #@server.listen(#@port, #@host, () => { console.log(`Server is running on ${#@scheme}://${#@host}:${#@port}`)}); } end |
#stop ⇒ Object
76 77 78 79 80 81 |
# File 'lib/up/node/server.rb', line 76 def stop if Up::CLI::stoppable? `#@server.close()` @server = nil end end |