Skip to content

Chat Channels

Chat channels are similar to chat rooms in that there are a variable number of participants. The main difference is that channels can be either public or private, and members are considered part of a ChatChannel even if they're not currently connected to the channel.

Note that a particular user can only join once, after which subsequent joins will result in an error. An already joined user can subsequently load a ChatChannel using ChatService.get(chatId).

Channels have a similar analogue in Slack.

// Create a channel
chatService.create({
  type: "channel", 
  membership: "private",
  name: "Founders",
  topic: "Super secret biz stuff" 
}).then(chatId => {
  // Join the channel
  return chatService.join(chatId);
}).then(channel => {
  console.log("Joined");

  channel.add("cameron");

  // Listen for incoming messages
  channel.on("message", (evt) => {
    console.log(evt.message); // "Dude, startups are hard!"
  });

  // Send a message
  channel.send("I thought I had an idea going in.  But...man.");

  // Leave the channel.
  chatService.leave(channel.info().chatId);
}).catch(e => {
  console.log(e);
});