| 1 | // needs a function O webServe(S uri, SS params) { ... }
 | 
| 2 | // and a function newWebSocket() | 
| 3 | |
| 4 | switchable int httpPort = 80; | 
| 5 | switchable int httpsPort = 443; | 
| 6 | transient autoDispose WebSocketHTTPD httpServer; | 
| 7 | transient autoDispose WebSocketHTTPD httpsServer; | 
| 8 | switchable bool redirectHttpToHttps; | 
| 9 | |
| 10 | transient new HTTPSpamBlocker1 spamBlocker; | 
| 11 | |
| 12 | void start_webServers(File keyStore, S passphrase) {
 | 
| 13 | start_webServers(serveHttps_makeSSLSocketFactory(keyStore, passphrase)); | 
| 14 | } | 
| 15 | |
| 16 | void start_webServers(SSLServerSocketFactory sslSocketFactory) ctex {
 | 
| 17 |   if (httpPort != 0) pcall {
 | 
| 18 | WebSocketHTTPD _httpServer = new(httpPort, lambda1 newWebSocket); | 
| 19 | _httpServer.enter = lambda0 enter; | 
| 20 |     _httpServer.serveFunction = func(S uri, SS parms) {
 | 
| 21 | redirectHttpToHttps && !startsWith(uri, "/.well-known/") | 
| 22 |         ? serveRedirect("https://" + serveHttp_domainName()
 | 
| 23 | + (httpsPort == 443 ? "" : ":" + httpsPort) + uri) | 
| 24 | : webServe(uri, parms) | 
| 25 | }; | 
| 26 | _httpServer.start(); | 
| 27 |     print("HTTP server started on port " + _httpServer.getPort());
 | 
| 28 | httpServer = _httpServer; | 
| 29 | } | 
| 30 | |
| 31 | if (httpsPort == 0 || sslSocketFactory == null) ret; | 
| 32 |   pcall {
 | 
| 33 | WebSocketHTTPD _httpsServer = new(httpsPort, lambda1 newWebSocket); | 
| 34 | _httpsServer.enter = lambda0 enter; | 
| 35 | _httpsServer.makeSecure(sslSocketFactory); | 
| 36 |     _httpsServer.serveFunction = func(S uri, SS parms) { webServe(uri, parms) };
 | 
| 37 | _httpsServer.start(); | 
| 38 |     print("HTTPS server started on port " + _httpsServer.getPort());
 | 
| 39 | httpsServer = _httpsServer; | 
| 40 | } | 
| 41 | } | 
| 42 | |
| 43 | Cl<WebSocketHTTPD> webServers() { ret llNotNulls(httpServer, httpsServer); } | 
Began life as a copy of #1027628
download show line numbers debug dex old transpilations
Travelled to 7 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt, xrpafgyirdlv
No comments. add comment
| Snippet ID: | #1029492 | 
| Snippet name: | HTTP+HTTPS Server Include for DynModules [WebSocket version] | 
| Eternal ID of this version: | #1029492/14 | 
| Text MD5: | b3d22107ff9165928480c762a275b536 | 
| Author: | stefan | 
| Category: | javax | 
| Type: | JavaX fragment (include) | 
| Public (visible to everyone): | Yes | 
| Archived (hidden from active list): | No | 
| Created/modified: | 2023-04-17 19:39:29 | 
| Source code size: | 1638 bytes / 43 lines | 
| Pitched / IR pitched: | No / No | 
| Views / Downloads: | 537 / 1085 | 
| Version history: | 13 change(s) | 
| Referenced in: | [show references] |