conversejs / converse.js

Web-based XMPP/Jabber chat client written in JavaScript
http://conversejs.org
Mozilla Public License 2.0
3.06k stars 763 forks source link

Roster nicknames not shown or JID is shown instead #1031

Closed badfiles closed 3 months ago

badfiles commented 6 years ago

Something strange happened to roster names. If I connect over websocket, I see no nicknames at all. If I connect over bosh, I see nicknames, but first click on a user leaves jid instead of a nickname.

--- Want to back this issue? **[Post a bounty on it!](https://app.bountysource.com/issues/55852693-roster-nicknames-not-shown-or-jid-is-shown-instead?utm_campaign=plugin&utm_content=tracker%2F194169&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://app.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F194169&utm_medium=issues&utm_source=github).
jcbrand commented 6 years ago

Can you provide some debug info? There's not enough info in your report for me to be able to help.

badfiles commented 6 years ago

I tried to collect debug info, but it is pretty hard to accomplish. While I can see bosh packets, WebSocket packets are encrypted. Which debug info would you like to see?

jcbrand commented 6 years ago

Set debug to true when calling converse.initialize and check if any errors or warnings are logged in the browser console. Also, use an unminified build of converse.js so that we get sane line numbers in any tracebacks.

badfiles commented 6 years ago

The minified build does not work on my test browser, the discussion is somewhere in issues, same regex problem. I saw no errors when debug was on. If I looked at raw traffic with Wireshark, I saw the names in packets from the server. As I have mentioned earlier, I cannot determine what exactly causes the bug. I even saw the names once when the connection was via WebSocket. One thing is 100% reproducible -- if the names appeared, they are replaced with jid after clicking on them.

badfiles commented 6 years ago

Here's what happens after loading the roster, the bosh connection leaves people 'unclicked'. the WebSocket connection somehow 'clicks' every item, it happens pretty fast, hard to notice. Anyway, after mysterious 'autoclick' or manual clicking an item, a name becomes a jid. screenshot from 2018-03-07 10-28-55 screenshot from 2018-03-07 10-29-03

jcbrand commented 6 years ago

Ok, so initially you have nicknames, and then somehow they turn into JIDs. I guess what's happening is that nicknames are gotten from the roster, and then vcards are fetched and then nicknames are overwritten with JIDs because there isn't a fullname in the vcard.

badfiles commented 6 years ago

building w/o "converse-vcard", // XEP-0054 VCard-temp and/or setting use_vcards: false, did not help.

jcbrand commented 6 years ago

Hmm, then I have no idea what's going on.

jcbrand commented 6 years ago

Refs #690

Echolon commented 3 years ago

@badfiles do you still experience this issue?

Echolon commented 3 years ago

ref. https://github.com/conversejs/converse.js/issues/1130

jcbrand commented 3 months ago

Closing due to no response and AFAICT it's fixed.