librelist archives

« back to archive

how to join a room at login?

how to join a room at login?

From:
Beginner Ti
Date:
2015-04-28 @ 20:52
Hi All,

I am trying to make a page that does this: when a new user connects, he
could create a new room and join it. I looked through the doc but didn’t
see how I could do this. Does converse.js have this capability? I saw that
Candy has auto_join if you specify a chatroom name, but not sure about
converse.js.

Any input will be greatly appreciated.

Thanks,

Rui

Re: [conversejs] how to join a room at login?

From:
Jc Brand
Date:
2015-05-01 @ 08:42
On Tue, Apr 28, 2015 at 01:52:08PM -0700, Beginner TI wrote:
>    Hi All,
> 
>    I am trying to make a page that does this: when a new user connects, he
>    could create a new room and join it. I looked through the doc but didn’t
>    see how I could do this. Does converse.js have this capability? I saw that
>    Candy has auto_join if you specify a chatroom name, but not sure about
>    converse.js.
> 
>    Any input will be greatly appreciated.

There's a ticket for this here which suggests a way you can do this by 
writing a plugin:
https://github.com/jcbrand/converse.js/issues/156

Re: [conversejs] how to join a room at login?

From:
Beginner Ti
Date:
2015-05-01 @ 22:25
Hey JC,

Thanks so much for the info. I tried everything I could think of but still
didn't get it working. I'm sorry to bother you again.

Here is my webpage, I actually didn't use the plugin, and directly try to
use it as a function. (I'm a beginner to js, and still not very clear about
the plugin mechanism. After many errors trying, I chose this way).

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <title>converse.js</title>

    <meta http-equiv="content-type" content="text/html;charset=utf-8" />

    <link rel="stylesheet" media="screen" href="converse.css">

    <script data-main="main" src="require.js"></script>

    <script src="converse.js"></script>

    <script src="converse.autojoin.js"></script>

</head>

<body>

    <div id="conversejs"></div>

<script>

    require(['converse'], function (converse) {

        converse.initialize({

            allow_otr: true,

            auto_list_rooms: false,

            auto_subscribe: false,

            bosh_service_url: 'http://127.0.0.1:5280/http-bind/',

            debug: true,

            show_controlbox_by_default: true,

            hide_muc_server: false,

            i18n: locales['en'],

            prebind: false,

            show_controlbox_by_default: true,

            xhr_user_search: false,

        });

        var jids = [ 'test2@muc.im.mysite.com <tamashii2@muc.im.apple.com>'
];

        converse.listen.on('ready', function(event) {

                    var _transform = function (jid) {

                        var chatbox = converse.chatboxes.get(jid);

                        if (!chatbox) {

                            var roster_item = converse.roster.get(jid);

                            if (roster_item === undefined) {

                                // Assume MUC

                                converse.chatboxes.create({

                                    'id': jid,

                                    'jid': jid,

                                    'name':
Strophe.unescapeNode(Strophe.getNodeFromJid(jid)),

                                    'nick':
Strophe.unescapeNode(Strophe.getNodeFromJid(converse.jid)),

                                    'chatroom': true,

                                    'box_id' : b64_sha1(jid)

                                });

                            }

                            converse.chatboxes.create({

                                'id': jid,

                                'jid': jid,

                                'fullname':
_.isEmpty(roster_item.get('fullname'))? jid: roster_item.get('fullname'),

                                'image_type': roster_item.get('image_type'),

                                'image': roster_item.get('image'),

                                'url': roster_item.get('url')

                            });

                        }

                    };

                    if (typeof jids === "string") {

                        _transform(jids);

                    }

                    _.map(jids, _transform);

        });

        console.log(converse);

     });

</script>

</body>

</html>

and it has an error:  "ERROR: User connection callback caused an exception:
TypeError: converse.chatboxes is undefined”

I look in converse.js, and I found that at line 34841, it starts to define:

converse.initialize = function (settings, callback) {

       var converse = this;

      …

      … until line 40117

      ….the last couple paragraph is:


        this._initialize = function () {

            this.chatboxes = new this.ChatBoxes();
   // this is where chatboxes is defined

            this.chatboxviews = new this.ChatBoxViews({model:
this.chatboxes});

            this.controlboxtoggle = new this.ControlBoxToggle();

            this.otr = new this.OTR();

            this.initSession();

            this.initConnection();

            if (this.connection) {

                this.addControlBox();

            }

            return this;

        };


        this._initializePlugins = function () {

            _.each(this.plugins, $.proxy(function (plugin) {

                $.proxy(plugin, this)(this);

            }, this));

        };


        // Initialization

        // --------------

        // This is the end of the initialize method.

        if (settings.connection) {

            this.connection = settings.connection;

        }

        this._initializePlugins();

        this._initialize();
                // this is where the _initialize() gets called

        this.registerGlobalEventHandlers();

        converse.emit('initialized');

    };


so why is this error? am I missing something obvious? or, is there
instruction on how to use that plugin?

thanks,

Rui

On Fri, May 1, 2015 at 1:42 AM, JC Brand <lists@opkode.com> wrote:

> On Tue, Apr 28, 2015 at 01:52:08PM -0700, Beginner TI wrote:
> >    Hi All,
> >
> >    I am trying to make a page that does this: when a new user connects,
> he
> >    could create a new room and join it. I looked through the doc but
> didn’t
> >    see how I could do this. Does converse.js have this capability? I saw
> that
> >    Candy has auto_join if you specify a chatroom name, but not sure about
> >    converse.js.
> >
> >    Any input will be greatly appreciated.
>
> There's a ticket for this here which suggests a way you can do this by
> writing a plugin:
> https://github.com/jcbrand/converse.js/issues/156
>

Re: [conversejs] how to join a room at login?

From:
Jc Brand
Date:
2015-05-02 @ 11:30
Hi Rui

I see that since the example code was pasted in that ticket the API has 
changed slightly.
I've updated the ticket to mention this.

Instead of using "converse.chatboxes.create" it should now be 
"converse.chats.open"
for single-user chats and "converse.rooms.open" for chat rooms.

Please make sure to read and understand how the developer API works:
https://conversejs.org/docs/html/development.html#developer-api

Regards
JC

On Fri, May 01, 2015 at 03:25:25PM -0700, Beginner TI wrote:
>    Hey JC,
>    Thanks so much for the info. I tried everything I could think of but still
>    didn't get it working. I'm sorry to bother you again.
>    Here is my webpage, I actually didn't use the plugin, and directly try to
>    use it as a function. (I'm a beginner to js, and still not very clear
>    about the plugin mechanism. After many errors trying, I chose this way).
> 
>    <html xmlns="[1]http://www.w3.org/1999/xhtml">
> 
>    <head>
> 
>        <title>converse.js</title>
> 
>        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
> 
>        <link rel="stylesheet" media="screen" href="converse.css">
> 
>        <script data-main="main" src="require.js"></script>
> 
>        <script src="converse.js"></script>
> 
>        <script src="converse.autojoin.js"></script>
> 
>    </head>
> 
>    <body>
> 
>        <div id="conversejs"></div>
> 
>    <script>
> 
>        require(['converse'], function (converse) {
> 
>            converse.initialize({
> 
>                allow_otr: true,
> 
>                auto_list_rooms: false,
> 
>                auto_subscribe: false,
> 
>                bosh_service_url: '[2]http://127.0.0.1:5280/http-bind/',
> 
>                debug: true,
> 
>                show_controlbox_by_default: true,
> 
>                hide_muc_server: false,
> 
>                i18n: locales['en'],
> 
>                prebind: false,
> 
>                show_controlbox_by_default: true,
> 
>                xhr_user_search: false,
> 
>            });
> 
>            var jids = [ '[3]test2@muc.im.mysite.com' ];
> 
>            converse.listen.on('ready', function(event) {
> 
>                        var _transform = function (jid) {
> 
>                            var chatbox = converse.chatboxes.get(jid);
> 
>                            if (!chatbox) {
> 
>                                var roster_item = converse.roster.get(jid);
> 
>                                if (roster_item === undefined) {
> 
>                                    // Assume MUC
> 
>                                    converse.chatboxes.create({
> 
>                                        'id': jid,
> 
>                                        'jid': jid,
> 
>                                        'name':
>    Strophe.unescapeNode(Strophe.getNodeFromJid(jid)),
> 
>                                        'nick':
>    Strophe.unescapeNode(Strophe.getNodeFromJid(converse.jid)),
> 
>                                        'chatroom': true,
> 
>                                        'box_id' : b64_sha1(jid)
> 
>                                    });
> 
>                                }
> 
>                                converse.chatboxes.create({
> 
>                                    'id': jid,
> 
>                                    'jid': jid,
> 
>                                    'fullname':
>    _.isEmpty(roster_item.get('fullname'))? jid: roster_item.get('fullname'),
> 
>                                    'image_type':
>    roster_item.get('image_type'),
> 
>                                    'image': roster_item.get('image'),
> 
>                                    'url': roster_item.get('url')
> 
>                                });
> 
>                            }
> 
>                        };
> 
>                        if (typeof jids === "string") {
> 
>                            _transform(jids);
> 
>                        }
> 
>                        _.map(jids, _transform);
> 
>            });
> 
>            console.log(converse);
> 
>         });
> 
>    </script>
> 
>    </body>
> 
>    </html>
> 
>    and it has an error:  "ERROR: User connection callback caused an
>    exception: TypeError: converse.chatboxes is undefined”
> 
>    I look in converse.js, and I found that at line 34841, it starts to
>    define:
> 
>    converse.initialize = function (settings, callback) {
> 
>           var converse = this;
> 
>          …
> 
>          … until line 40117
> 
>          ….the last couple paragraph is:
> 
>            this._initialize = function () {
> 
>                this.chatboxes = new this.ChatBoxes();                        
>       // this is where chatboxes is defined
> 
>                this.chatboxviews = new this.ChatBoxViews({model:
>    this.chatboxes});
> 
>                this.controlboxtoggle = new this.ControlBoxToggle();
> 
>                this.otr = new this.OTR();
> 
>                this.initSession();
> 
>                this.initConnection();
> 
>                if (this.connection) {
> 
>                    this.addControlBox();
> 
>                }
> 
>                return this;
> 
>            };
> 
>            this._initializePlugins = function () {
> 
>                _.each(this.plugins, $.proxy(function (plugin) {
> 
>                    $.proxy(plugin, this)(this);
> 
>                }, this));
> 
>            };
> 
>            // Initialization
> 
>            // --------------
> 
>            // This is the end of the initialize method.
> 
>            if (settings.connection) {
> 
>                this.connection = settings.connection;
> 
>            }
> 
>            this._initializePlugins();
> 
>            this._initialize();                                              
>                      // this is where the _initialize() gets called
> 
>            this.registerGlobalEventHandlers();
> 
>            converse.emit('initialized');
> 
>        };
> 
>    so why is this error? am I missing something obvious? or, is there
>    instruction on how to use that plugin? 
> 
>    thanks,
> 
>    Rui
> 
>    On Fri, May 1, 2015 at 1:42 AM, JC Brand <[4]lists@opkode.com> wrote:
> 
>      On Tue, Apr 28, 2015 at 01:52:08PM -0700, Beginner TI wrote:
>      >    Hi All,
>      >
>      >    I am trying to make a page that does this: when a new user
>      connects, he
>      >    could create a new room and join it. I looked through the doc but
>      didn’t
>      >    see how I could do this. Does converse.js have this capability? I
>      saw that
>      >    Candy has auto_join if you specify a chatroom name, but not sure
>      about
>      >    converse.js.
>      >
>      >    Any input will be greatly appreciated.
> 
>      There's a ticket for this here which suggests a way you can do this by
>      writing a plugin:
>      [5]https://github.com/jcbrand/converse.js/issues/156
> 
> References
> 
>    Visible links
>    1. http://www.w3.org/1999/xhtml
>    2. http://127.0.0.1:5280/http-bind/'
>    3. mailto:tamashii2@muc.im.apple.com
>    4. mailto:lists@opkode.com
>    5. https://github.com/jcbrand/converse.js/issues/156

Re: [conversejs] how to join a room at login?

From:
Beginner Ti
Date:
2015-05-07 @ 07:32
Hi JC,

Thanks for the info. I followed your suggestion, and last week, I got it
working! I was able to join a room
upon login. However, today when I tried it again, it suddenly stopped
working. Although it seems I joined
the room, I could not see other people in the room and I wasn't able to
send messages to the room.

My code basically looks like:

    require(['converse'], function (converse) {
        converse.initialize({
            allow_otr: true,
            auto_list_rooms: false,
            auto_subscribe: false,
            bosh_service_url: 'http://127.0.0.1:5280/http-bind/',
            debug: true,
            show_controlbox_by_default: true,
            hide_muc_server: false,
            i18n: locales['en'],
            prebind: false,
            show_controlbox_by_default: true,
            xhr_user_search: false,
        });
       var jids = "testroom@muc.im.mysite.com";
        converse.listen.on('ready', function(event) {
            var _transform = function (jid) {
                var chatbox = converse.rooms.get(jid);
                if (!chatbox) {
                    chatbox = converse.rooms.open(jid);
                }
            };
            if (typeof jids === "string") {
                _transform(jids);
            }


I tried to fire it up, and log in, send a few messages, and look at
firebug, and found that I got several different error messages like:

<error code="409" type="cancel"><conflict
xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text
xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error>

<error code="500" type="cancel"><forbidden
xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text
xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">not allowed to participate this
room</text></error>   // this usually happens when sending a message to room

<error code="400" type="wait"><unexpected-request
xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text
xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Make yourself available before
entering conference rooms</text></error>  // this usually happens when I
join the room

additionally, the from part used to be myacct@im.mysite.com, now it became
myacct@im.mysite.com/converse.js-30204690, is this expected?  Also I saw a
lot of timeout error messages.

I observed two things:

1. upon login in, my status 'online' is not marked, it's an empty square
icon with 'online'. I could manually change it to 'online' with a solid
square icon.
2. after 1, I was able to manually join a room and everything seems to be
ok now.

So, it seems like I need to set myself to be available/online when I log
in? but why would it work last week without any config? How to do this?

I'm quite frustrated on this for the whole night. Didn't know what I
accidentally changed that caused all this. If you have seen this before,
please let me know what you think? I'll really appreciate.

thanks,
Rui

On Sat, May 2, 2015 at 4:30 AM, JC Brand <lists@opkode.com> wrote:

> Hi Rui
>
> I see that since the example code was pasted in that ticket the API has
> changed slightly.
> I've updated the ticket to mention this.
>
> Instead of using "converse.chatboxes.create" it should now be
> "converse.chats.open"
> for single-user chats and "converse.rooms.open" for chat rooms.
>
> Please make sure to read and understand how the developer API works:
> https://conversejs.org/docs/html/development.html#developer-api
>
> Regards
> JC
>
>

Re: [conversejs] how to join a room at login?

From:
Jc Brand
Date:
2015-05-11 @ 15:49
Hi Rui

It sounds like for some reason you are not joining the chat
room after it's been opened or retrieved.

I'm not sure what the sequence of events is that would cause this to happen.

You could try to manually join, but for that to be possible the WrappedChatBox
wrapper needs to be modified to allow "join" to be called.

JC


On Thu, May 07, 2015 at 12:32:19AM -0700, Beginner TI wrote:
>    Hi JC,
>    Thanks for the info. I followed your suggestion, and last week, I got it
>    working! I was able to join a room
>    upon login. However, today when I tried it again, it suddenly stopped
>    working. Although it seems I joined
>    the room, I could not see other people in the room and I wasn't able to
>    send messages to the room.
>    My code basically looks like:
>        require(['converse'], function (converse) {
>            converse.initialize({
>                allow_otr: true,
>                auto_list_rooms: false,
>                auto_subscribe: false,
>                bosh_service_url: '[1]http://127.0.0.1:5280/http-bind/',
>                debug: true,
>                show_controlbox_by_default: true,
>                hide_muc_server: false,
>                i18n: locales['en'],
>                prebind: false,
>                show_controlbox_by_default: true,
>                xhr_user_search: false,
>            });
>           var jids = "[2]testroom@muc.im.mysite.com";
>            converse.listen.on('ready', function(event) {
>                var _transform = func tion (jid) {
>                    var chatbox = converse.rooms.get(jid);
>                    if (!chatbox) {
>                        chatbox = converse.rooms.open(jid);
>                    }
>                };
>                if (typeof jids === "string") {
>                    _transform(jids);
>                }
>    I tried to fire it up, and log in, send a few messages, and look at
>    firebug, and found that I got several different error messages like:
>    <error code="409" type="cancel"><conflict
>    xmlns="urn:ietf:params:xml:ns:xmpp-stanzas "/><text
>    xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error>
>    <error code="500" type="cancel"><forbidden
>    xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text
>    xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">not allowed to participate
>    this room</text></error>   // this usually happens when sending a message
>    to room
>    <error code="400" type="wait"><unexpected-request
>    xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text
>    xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Make yourself available before
>    entering conference rooms</text></error>  // this usually happens when I
>    join the room</ div>
>    additionally, the from part used to be [3]myacct@im.mysite.com, now it
>    became [4]myacct@im.mysite.com/converse.js-30204690, is this expected? 
>    Also I saw a lot of timeout error messages. 
>    I observed two things:
>    1. upon login in, my status 'online' is not marked, it's an empty square
>    icon with 'online'. I could manually change it to 'online' with a solid
>    square icon.
>    2. after 1, I was able to manually join a room and everything seems to be
>    ok now.
>    So, it seems like I need to set myself to be available/online when I log
>    in? but why would it work last week without any config? How to do this?
>    I'm quite frustrated on this for the whole night. Didn't know what I
>    accidentally changed that caused all this. If you have seen this before,
>    please let me know what you think? I'll really appreciate.
>    thanks,
>    Rui
>    On Sat, May 2, 2015 at 4:30 AM, JC Brand <[5]lists@opkode.com> wrote:
> 
>      Hi Rui
> 
>      I see that since the example code was pasted in that ticket the API has
>      changed slightly.
>      I've updated the ticket to mention this.
> 
>      Instead of using "converse.chatboxes.create" it should now be
>      "converse.chats.open"
>      for single-user chats and "converse.rooms.open" for chat rooms.
> 
>      Please make sure to read and understand how the developer API works:
>      [6]https://conversejs.org/docs/html/development.html#developer-api
> 
>      Regards
>      JC
> 
> References
> 
>    Visible links
>    1. http://127.0.0.1:5280/http-bind/
>    2. mailto:testroom@muc.im.mysite.com
>    3. mailto:myacct@im.mysite.com
>    4. http://myacct@im.mysite.com/converse.js-30204690
>    5. mailto:lists@opkode.com
>    6. https://conversejs.org/docs/html/development.html#developer-api

Re: [conversejs] how to join a room at login?

From:
Beginner Ti
Date:
2015-05-02 @ 05:35
Hey JC,

Just FYI, seems I'm not the only one who saw this:


http://librelist.com/browser//conversejs/2015/2/17/reg-how-to-extend-conversejs/#f6a48486e7a3e9c626417950c78cc7ef

He sees exactly what I'm seeing today. Is there any easy fix on this, or
this is not trivial?

Thanks,
Rui

On Fri, May 1, 2015 at 3:25 PM, Beginner TI <ruiwang.sz@gmail.com> wrote:

> Hey JC,
>
> Thanks so much for the info. I tried everything I could think of but still
> didn't get it working. I'm sorry to bother you again.
>
> Here is my webpage, I actually didn't use the plugin, and directly try to
> use it as a function. (I'm a beginner to js, and still not very clear about
> the plugin mechanism. After many errors trying, I chose this way).
>
> <html xmlns="http://www.w3.org/1999/xhtml">
>
> <head>
>
>     <title>converse.js</title>
>
>     <meta http-equiv="content-type" content="text/html;charset=utf-8" />
>
>     <link rel="stylesheet" media="screen" href="converse.css">
>
>     <script data-main="main" src="require.js"></script>
>
>     <script src="converse.js"></script>
>
>     <script src="converse.autojoin.js"></script>
>
> </head>
>
> <body>
>
>     <div id="conversejs"></div>
>
> <script>
>
>     require(['converse'], function (converse) {
>
>         converse.initialize({
>
>             allow_otr: true,
>
>             auto_list_rooms: false,
>
>             auto_subscribe: false,
>
>             bosh_service_url: 'http://127.0.0.1:5280/http-bind/',
>
>             debug: true,
>
>             show_controlbox_by_default: true,
>
>             hide_muc_server: false,
>
>             i18n: locales['en'],
>
>             prebind: false,
>
>             show_controlbox_by_default: true,
>
>             xhr_user_search: false,
>
>         });
>
>         var jids = [ 'test2@muc.im.mysite.com <tamashii2@muc.im.apple.com>'
> ];
>
>         converse.listen.on('ready', function(event) {
>
>                     var _transform = function (jid) {
>
>                         var chatbox = converse.chatboxes.get(jid);
>
>                         if (!chatbox) {
>
>                             var roster_item = converse.roster.get(jid);
>
>                             if (roster_item === undefined) {
>
>                                 // Assume MUC
>
>                                 converse.chatboxes.create({
>
>                                     'id': jid,
>
>                                     'jid': jid,
>
>                                     'name':
> Strophe.unescapeNode(Strophe.getNodeFromJid(jid)),
>
>                                     'nick':
> Strophe.unescapeNode(Strophe.getNodeFromJid(converse.jid)),
>
>                                     'chatroom': true,
>
>                                     'box_id' : b64_sha1(jid)
>
>                                 });
>
>                             }
>
>                             converse.chatboxes.create({
>
>                                 'id': jid,
>
>                                 'jid': jid,
>
>                                 'fullname':
> _.isEmpty(roster_item.get('fullname'))? jid: roster_item.get('fullname'),
>
>                                 'image_type':
> roster_item.get('image_type'),
>
>                                 'image': roster_item.get('image'),
>
>                                 'url': roster_item.get('url')
>
>                             });
>
>                         }
>
>                     };
>
>                     if (typeof jids === "string") {
>
>                         _transform(jids);
>
>                     }
>
>                     _.map(jids, _transform);
>
>         });
>
>         console.log(converse);
>
>      });
>
> </script>
>
> </body>
>
> </html>
>
> and it has an error:  "ERROR: User connection callback caused an
> exception: TypeError: converse.chatboxes is undefined”
>
> I look in converse.js, and I found that at line 34841, it starts to define:
>
> converse.initialize = function (settings, callback) {
>
>        var converse = this;
>
>       …
>
>       … until line 40117
>
>       ….the last couple paragraph is:
>
>
>         this._initialize = function () {
>
>             this.chatboxes = new this.ChatBoxes();
>    // this is where chatboxes is defined
>
>             this.chatboxviews = new this.ChatBoxViews({model:
> this.chatboxes});
>
>             this.controlboxtoggle = new this.ControlBoxToggle();
>
>             this.otr = new this.OTR();
>
>             this.initSession();
>
>             this.initConnection();
>
>             if (this.connection) {
>
>                 this.addControlBox();
>
>             }
>
>             return this;
>
>         };
>
>
>         this._initializePlugins = function () {
>
>             _.each(this.plugins, $.proxy(function (plugin) {
>
>                 $.proxy(plugin, this)(this);
>
>             }, this));
>
>         };
>
>
>         // Initialization
>
>         // --------------
>
>         // This is the end of the initialize method.
>
>         if (settings.connection) {
>
>             this.connection = settings.connection;
>
>         }
>
>         this._initializePlugins();
>
>         this._initialize();
>                   // this is where the _initialize() gets called
>
>         this.registerGlobalEventHandlers();
>
>         converse.emit('initialized');
>
>     };
>
>
> so why is this error? am I missing something obvious? or, is there
> instruction on how to use that plugin?
>
> thanks,
>
> Rui
>
> On Fri, May 1, 2015 at 1:42 AM, JC Brand <lists@opkode.com> wrote:
>
>> On Tue, Apr 28, 2015 at 01:52:08PM -0700, Beginner TI wrote:
>> >    Hi All,
>> >
>> >    I am trying to make a page that does this: when a new user connects,
>> he
>> >    could create a new room and join it. I looked through the doc but
>> didn’t
>> >    see how I could do this. Does converse.js have this capability? I
>> saw that
>> >    Candy has auto_join if you specify a chatroom name, but not sure
>> about
>> >    converse.js.
>> >
>> >    Any input will be greatly appreciated.
>>
>> There's a ticket for this here which suggests a way you can do this by
>> writing a plugin:
>> https://github.com/jcbrand/converse.js/issues/156
>>
>
>