question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Difficulties joining chat rooms

See original GitHub issue

Expected behavior

Auto-joining chat room after login to jsxc.

Actual behavior

If NO HISTORY in the chat room: A chat room is in the roster (Bookmark and Auto-Join is enabled), but it’s impossible to join there at the first login. When I click the chat room in the roster I get the “Join chat” window, click there to Continue and then click “Join”: the “Join”-window still hangs on the page and I can’t join to the chat room. But after logout-login to jsxc a user joins to the chat room straight away. This works only for the “Dual-Login” method. For other methods (“AJAX Login” and “Box Login”) it doesn’t work at all - neither auto-join, nor manually join. However after login-logout-login through the “Dual-Login” method the Auto-join function to the chat room starts to work.

If there is SOME HISTORY in the chat room: The chat room is in the roster (Bookmark and Auto-Join are enabled). When I click the chat room in the roster I get the “Join chat” window, click there to Continue and then click “Join”: I get the chat room tab at the bottom of the page, but the “Join”-window still hangs on the page.

Steps to reproduce the behavior

  1. Go to the jsxc example page (/jscx/example);
  2. Join a new chat room, check Bookmark and Auto-Join checkboxes - new chat room will be created. Keep the chat room clean (there must be no messages, no history), logout and clear browser cache, reload the page;
  3. Login through the Dual-Login method: 3.1 Login and try join the newly created chat room - it gives eventually a window with the green Join button. Clicking this button gives nothing; 3.2 Close this window, logout and login again to jsxc - you will be able to join the chat room;
  4. Login through other methods (“AJAX Login” and “Box Login”): 4.1 Clear browser cache, reload the page, login and try to join the created chat room - it gives eventually a window with the green Join button. Clicking to this button gives nothing; 4.2 Logout and login again - doesn’t matter, the Join button will remain unclickable at next logins, until the Dual-login method is be used;
  5. Behavior with some history in the chat room: 5.1 Clear browser cache, reload the page, login through the Dual-Login method and try to join to the created chat room. If the chat room history is empty, you won’t be able to join the room. Keep the page open; 5.2 Login to the jabber server using another account and another jabber-client (Miranda-NG eg.), join to the chat room and generate some messages. After the first message check the jsxc-page, the chat room tab should be show up at the bottom of the page - so you have joined the chat room; 5.3 Clear browser cache, reload the page, login and try to join to the created chat room - you get the behavior described above in “If there is SOME HISTORY in a chat room”.

Environment

  • JSXC version: 3.2.2, 3.4.1
  • Host system and version: Debian 9.4, Mageia 6
  • Browser vendor and version: Mozilla Firefox, Chromium browser
  • Any browser plugins enabled? -
  • XMPP server vendor and version: Ejabberd 18.01, Ejabberd 18.06
  • Is your XMPP server working with other clients as expected? Yes, checked on Miranda NG

Logs

Javascript. Clicking on the Join button, see 3.1 of “Steps to reproduce the behavior”

jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online
jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online
jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online
jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online

Javascript. See 3.2 of “Steps to reproduce the behavior”

jsxc.js:184 auto join test-room-2@conference.example.com
jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online
jsxc.js:184 close dialog
jsxc.js:184 Update file transfer icons for test-room-2@conference.example.com
jquery.min.js:4 GET http://example.com/jsxc/build/css/images/ui-bg_flat_0_aaaaaa_40x100.png 404 (Not Found)

JSXC

$ State changed to INITIATING
$ State changed to PREVCONFOUND
$ check master
$ I am master.
$ State changed to ESTABLISHING
$ Try to attach
$ SID: 5546d900ce48c1097c565c3f42b6983d8d9c12f0
$ ATTACHED: null
$ Discover muc service
$ UI State changed to INITIATING
$ Waiting for server capabilities
$ Request server capabilities
$ DSA key creation started.
$ State changed to READY
$ discover http upload service
$ Load roster: <iq xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test001@example.com" type="result" id="85da5433-5da4-4823-bbab-bd928e024f4a:sendIQ"><query xmlns="jabber:iq:roster"><item subscription="both" jid="admin@example.com"><group>example</group></item><item subscription="both" jid="test002@example.com"><group>example</group></item></query></iq>
$ Load bookmarks from pubsub
$ Roster loaded
$ Send presence: <presence xmlns="jabber:client"><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://jsxc.org/" ver="UEMHBlT9XVU7FUwfm/6rl815MUE="></c></presence>
$ Update icon: 
$ [webrtc] Could not update icon, because could not find jid for example.com
$ UI State changed to READY
$ vCard: <iq xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test001@example.com" type="result" id="73ca4317-6efa-4927-935e-c25daea6577d:sendIQ"><vCard xmlns="vcard-temp"></vCard></iq>
$ No photo provided
$ DSA key creation started
$ query conference.example.com for upload service
$ query pubsub.example.com for upload service
$ Carbons enabled
$ auto join test-room@conference.example.com
$ auto join test-room-2@conference.example.com
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test001@example.com/example"><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://jsxc.org/" ver="UEMHBlT9XVU7FUwfm/6rl815MUE="></c><x xmlns="vcard-temp:x:update"></x></presence>
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test001@example.com/example"><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://jsxc.org/" ver="UEMHBlT9XVU7FUwfm/6rl815MUE="></c><x xmlns="vcard-temp:x:update"></x><delay xmlns="urn:xmpp:delay" from="test001@example.com/example" stamp="2018-08-10T06:05:25.004754Z"></delay></presence>
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room@conference.example.com" id="13192972959890676566"><c xmlns="http://jabber.org/protocol/caps" ver="Mi6G0puDtcUxJCptiu+zx8p6Hy0=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room@conference.example.com): online
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room@conference.example.com/test001): online
$ webrtc.onpresence: "test-room@conference.example.com/test001"
$ Update icon: "test-room@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="15725516013949352737"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="201"></status><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ muc service found: 
$ Variable muc doesn't exist. It was created.
$ Update icon: "test-room@conference.example.com"
$ Update icon: "test-room-2@conference.example.com"
$ DSA key creation finished
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="9073821292046879580"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ Update icon: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ New bookmark created: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="1102508400064005206"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ Update icon: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ New bookmark created: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="14447599801401790539"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ Update icon: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ New bookmark created: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="1370082517997871119"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ Update icon: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ New bookmark created: "test-room-2@conference.example.com"

XMPP

-

Host

-

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:9 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
damkhcommented, Sep 3, 2018

Ok, will try to test today at night

0reactions
sualkocommented, Sep 4, 2018

🎉 thanks for testing 👍

Read more comments on GitHub >

github_iconTop Results From Across the Web

Problems With Internet Chat – Bored And Vulnerable Users
There are chat rooms for various issues, such as for anxiety and depression. A better alternative though is chatting with licensed ...
Read more >
Solutions to Chat Room Loading Problems - Disabled World
Having problems entering chat rooms? Here are a few things you can try. Note: These items should always be done to maintain your...
Read more >
The Dangers of Online Chat Rooms and Message Boards
It starts with the general dangers of online chat rooms, ranging from sexually explicit content to pedophiles and predators.
Read more >
Can't join a chat room - Google Account Community
On mobile (android app) I can join the chat room successfully but can't post a message there with "Failed to send" error. Then...
Read more >
Are chat rooms accessible to people with disabilities? | DO-IT
Chat rooms can sometimes present a difficult web challenge for people with disabilities. For screen reader users, the accessibility of chat ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found