Mercurial > prosody-modules
changeset 2440:7814a5c7fee8
mod_candy: Provide websocket URI if mod_websocket is loaded, fall back to BOSH
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 10 Jan 2017 14:11:56 +0100 |
parents | 1f7820f68868 |
children | 68ebc52222dc |
files | mod_candy/mod_candy.lua mod_candy/www_files/index.html |
diffstat | 2 files changed, 14 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_candy/mod_candy.lua Sun Jan 08 11:29:13 2017 +0100 +++ b/mod_candy/mod_candy.lua Tue Jan 10 14:11:56 2017 +0100 @@ -1,19 +1,29 @@ -- mod_candy.lua --- Copyright (C) 2013 Kim Alvefur +-- Copyright (C) 2013-2017 Kim Alvefur local json_encode = require"util.json".encode; +local is_module_loaded = require "core.modulemanager".is_loaded; -module:depends"bosh"; local serve = module:depends"http_files".serve; module:provides("http", { route = { ["GET /prosody.js"] = function(event) event.response.headers.content_type = "text/javascript"; + local connect_path; + if is_module_loaded(module.host, "websocket") then + connect_path = module:http_url("websocket", "xmpp-websocket"):gsub("^http", "ws"); + else + if not is_module_loaded(module.host, "bosh") then + module:depends("bosh"); + end + connect_path = module:http_url("bosh", "/http-bind"); + end + return ("// Generated by Prosody\n" .."var Prosody = %s;\n") :format(json_encode({ - bosh_path = module:http_url("bosh","/http-bind"); + connect_path = connect_path; version = prosody.version; host = module:get_host(); anonymous = module:get_option_string("authentication") == "anonymous";
--- a/mod_candy/www_files/index.html Sun Jan 08 11:29:13 2017 +0100 +++ b/mod_candy/www_files/index.html Tue Jan 10 14:11:56 2017 +0100 @@ -13,7 +13,7 @@ <script type="text/javascript" src="prosody.js"></script><!-- Virtual file generated by mod_candy --> <script type="text/javascript"> $(document).ready(function() { - Candy.init(Prosody.bosh_path, { + Candy.init(Prosody.connect_path, { core: { // only set this to true if developing / debugging errors debug: false,