Mercurial > prosody-modules
changeset 3635:fd054689a64c
mod_http_stats_stream: Use existing header preparation
This allows the CORS support in mod_http to work.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 31 Jul 2019 18:55:06 +0200 |
parents | 915e32d5a147 |
children | afedc2430b0d |
files | mod_http_stats_stream/mod_http_stats_stream.lua |
diffstat | 1 files changed, 9 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_http_stats_stream/mod_http_stats_stream.lua Tue Jul 30 02:07:13 2019 +0200 +++ b/mod_http_stats_stream/mod_http_stats_stream.lua Wed Jul 31 18:55:06 2019 +0200 @@ -1,4 +1,5 @@ local statsman = require "core.statsmanager"; +local http = require "net.http.server"; local json = require "util.json"; local sessions = {}; @@ -13,16 +14,14 @@ response.on_destroy = updates_client_closed; - response.conn:write(table.concat({ - "HTTP/1.1 200 OK"; - "Content-Type: text/event-stream"; - "X-Accel-Buffering: no"; -- For nginx maybe? - ""; - "event: stats-full"; - "data: "..json.encode(statsman.get_stats()); - ""; - ""; - }, "\r\n")); + response.headers.content_type = "text/event-stream"; + response.headers.x_accel_buffering = "no"; -- for nginx maybe? + local resp = http.prepare_header(response); + table.insert(resp, "event: stats-full\r\n"); + table.insert(resp, "data: "); + table.insert(resp, json.encode(statsman.get_stats())); + table.insert(resp, "\r\n\r\n"); + response.conn:write(table.concat(resp)); sessions[response] = request; return true;