Introducing Discourse Chat (BETA)

To follow up on this, honestly I’m pretty impressed. There’s a few things that stick out as clearly non-native, which might be a sticking point trying to convince people away from slack. Luckily these are all UI tweaks:

  • Buttons are incredibly small. Often by 50% or more. This is a primary complaint others have noted when I float the idea of using the rest of Discourse as a PWA, and it carries over to the UI here. This is also an issue for accessibility.
  • Buttons are missing press-states. On Android buttons show the ‘default blue square’. This immediately makes it feel like a website. It actually adds to the feeling of lag, at least for me.

But overall, nice work!

9 Likes

hi, just wondering if there will be a way for users to remove themselves from Personal Chats they no longer wish to be part of?

Thank you

3 Likes

Yes totally we plan to support our existing guards like ignore and mute, and respect allow other users to send me personal messages

6 Likes

AFAIK no, but it is in roadmap.

Mine, and some my users’, channel list is now a bit… overcrowded :wink: So, hopefully that option comes ASAP. Sure, I know we are doing testing here but this is somekind catch22-ish situation now — should do testing, but testing makes chat unusable :sweat_smile:

4 Likes

3 posts were split to a new topic: Personal message chat list is too long

Did a test yesterday with about 40-50 users on my forum simultaneously. It was during 90 football match were we replaced live forum with chat.

Given my team lost I got lots of critical feedback. It was a good cat to kick.

Discovered a few things.

Seemingly issues associated with number of users. Some people reported they were unable to log on, others got booted off. The same users had no issues later on. No errors messages were reported to the user.

Posters didn’t like being able to to use the emoticons on their own posts. They also didn’t like how posts got amalgamated, if they posted 2 or 3 times in succession. They would much prefer seperate posts.

A few struggled with being able to join to leave groups. This turned out to be more of a IT literacy issue. However clearer icon/ better description in drop down might help.

What people liked is the privacy on an otherwise open forum. The ability to replace a few WhatsApp groups.

Key things for them (given I explained it as forum = stuff you want to store vs chat = calling the referee a muppet) is ensuring chat is transient. Something like all chat older than 14 days is deleted. Or entire chat rooms self destruct after 14 days. This was part of the privacy side.

The ability to manually delete chat rooms would also be great :+1:

They liked how posts moved to forum where linked back to the chat.

Hope feedback helps :blush:

16 Likes

Agree - to “archive” channels (AND personal chats) you never want to see in the list would be great.

2 Likes

Thank you heaps for the feedback!

The scalability issues do sound concerning, we would like to get to the bottom of it, we certainly do not want you to have any noticeable issues on a 50 person chat. Can you tell me a bit more about how your forum is set up? Digital ocean plan?

Certainly sounds like a reasonable setting here, by default you should not be allowed to “self” react, just like you can not “self” like. Added to our list.

Absolutely, we plan to add chat retention rules fairly soon. By default we are thinking about keeping this at 90 days, but you will certainly be allowed to push this down to 2 weeks.

14 Likes

My community has the opposite need. We often react to our own messages, especially when setting up polls.

For example, we could ask:

Vote :+1:t3: or :-1:

Then we’ll react to the message with these options so that other people just need to click on the emoji to add their vote.

10 Likes

Sure,

I am running Discourse on their $40 plan. That’s 4 vCPUs, 8gb ram and 60GB storage (which is about half used). Created using discourse instructions rather than DO image.

Generally it’s a bit overkill for my forum, but it’s generally robust for the high traffic during games which varies between 50-130 posters (on average about 80) making about 600 or so posts in one thread in 90 minutes.

I use a few plugins which don’t seem to affect performance. Legal tools, who is online, patreon, reactions.

Happy to do another test in a couple of weeks. Checking the dashboard in DO the spike for CPU usage at 20% (fair bit lower than typical match day), and bandwidth was what I would expect.

3 Likes

It seems that discourse-math is broken in chat, at least for KaTeX, and this script fixes it:

script
;(function () {
    
var loadScript = require("discourse/lib/load-script").default;

function ensureKaTeX() {
  return loadScript("/plugins/discourse-math/katex/katex.min.js").then(function () {
    return loadScript("/plugins/discourse-math/katex/katex.min.css", {
      css: true,
    }).then(function () {
      return loadScript("/plugins/discourse-math/katex/mhchem.min.js");
    });
  });
}

function decorate(elem) {
  var $elem = $(elem);
  var displayMode = elem.tagName === "DIV";

  if ($elem.data("applied-katex")) {
    return;
  }
  $elem.data("applied-katex", true);

  if ($elem.hasClass("math")) {
    var tag = elem.tagName === "DIV" ? "div" : "span";
    var displayClass = tag === "div" ? "block-math" : "inline-math";
    var text = $elem.text();
    $elem.addClass(`math-container ${displayClass} katex-math`).text("");
    window.katex.render(text, elem, { displayMode });
  }
}

function katex($elem) {
  if (!$elem || !$elem.find) {
    return;
  }

  const mathElems = $elem.find(".math");

  if (mathElems.length > 0) {
    ensureKaTeX().then(function () {
      mathElems.each(function (idx, elem) { decorate(elem) });
    });
  }
}

setInterval(function () {
    Array.from(document.querySelectorAll('.tc-message-container')).forEach(function (el) { katex(Discourse.$(el)) })
}, 1000)

})()
3 Likes

Another bug: trying to render a message from a deleted account results in js application crash.

Reproduction:

  1. create a test account apart from your account
  2. send a chat message using that account
  3. delete that account
  4. browse the channel using your account
  5. open devtools and see the error log
6 Likes

Thanks for the plugin!

Is there a way (as admin) to delete/remove chat channels?

1 Like

It’s currently in the works. See the bottom of Sam’s post here:
Introducing Discourse Chat (PRE-ALPHA) - #55 by sam

4 Likes

There used to be a flag for enabling or disabling chat in category settings. Did that get removed?

2 Likes

Currently there is an option to have many channels associated with one category.

1 Like

If we install the open source plugin, will there be a seamless transfer when it will be integrated in core/public?

1 Like

The plugin is an officially supported plugin. Should it be migrated to core (no current plans), there will be a proper migration path, yes.

9 Likes

It would be great if channels could be created as private/public and they had public URLs for indexing by search engines. This would bring additional traffic to the community

3 Likes

After upgrading and 10 sec test drive: I can now close unneeded channels, even and especially private ones.

As our british friends so often say: splendeed indeed.

9 Likes