Skip to content

Instantly share code, notes, and snippets.

@amonks
Last active August 29, 2015 14:25
Show Gist options
  • Save amonks/c58a1f57e15b43701381 to your computer and use it in GitHub Desktop.
Save amonks/c58a1f57e15b43701381 to your computer and use it in GitHub Desktop.
moving a facebook groupchat to xmpp

moving circleofdads to XMPP

so it's def time to get this thing off facebook

proposal

I propose XMPP cuz it's open/federated/standard/makes me nostalge for AIM

I also thought about Slack cuz it's trendy. maybe that is the better option and we will switch. Let's try this first.

details

I set up a chatroom (and opened my first xmpp account since aim) on blah.im. If you already have an xmpp account somewhere you can use that.

  • room thecircleofdads
  • server rooms.blah.im
  • password dadchat

setting up / clients

I'm using adium on osx and chatsecure on ios. (not because I especially care about encryption but because it looks like the only decent client) and Monal on iOS.

I regestered for XMPP from within Adium, which you can see in the screencast.

OSX: Adium

setup // account-creation screencast

!!! you should also probably go into settings and turn on sounds (or something) for both "message received (group chat)" and "message received (background group chat)"

autojoin

protip: if ur in adium, add the groupchat to your contacts by clicking "Add Group Chat Bookmark" in the "Contact" menu. Then, "Get Info" for that contact (cmnd-i or "Contact > Get Info"), and in the gear panel, check "Automatically join on connect"

iOS: Monal

update: chatsecure doesn't support group chats well. Neither did 5 other iOS clients I tried. But Monal does!

Monal's a tad buggy but it works well enough.

To get into the group chat, you have to go to "… More" in the bottom-bar, then click "Group Chat." Super weird ux but once you're in, you're in.

note: the room name is [email protected]. Here's a screenshot:

iOS: astrachat

astrachat is an actively developed XMPP client for iOS. It's not shitty like monal is. It doesn't currently support groupchats, but I'm chatting with the developer and he's working on it. we'll see.

web: conversejs

conversejs.org has a webclient but it's kinda not great

settings

I just found this cool settings page:

I got to it by typing /config into the group in adium

Fenn was having trouble connecting so I unchecked "Make Room Members-Only?". Hopefully it works now.

problems

logging

I like being able to log onto fb and see all the groupchats I missed. I know xmpp sends out some groupchat logs when you connect, but I'm not sure how many. I'm not sure if that number is set by blah.im or by the xmpp protocol itself. If the former, I don't mind running a lil server. Maybe we'll just keep our clients running and it won't be an issue. We'll see.

multi-client shit

signing on to Monal sometimes kicks my Adium session. Lame.

I'm currently dealing with this with a separate "[email protected]" account.

socket bizness

on iOS you can't leave a socket open while your app is in the background, so the only "good" way to do background chats is via push notifications, which XMPP isn't designed to support. The good folx at chatsecure have a nice discussion of the issues

alternatives

This mobile bizness is kinda annoying, but idk how much you guys do dadchat on your phones.

IRC

IRC is popular enough that a few people have made bouncers that send push notifications to your phone. That's pretty cool.

colloquy works pretty well on iOS, which is also pretty cool.

the drawback is that I think I'd need to run a server, which is fine but effort.

slack

slack works great. It's actively developed. It has a sensible business model. It costs money to get message retention which is kinda lame, but we could probably work around that with intermittant archiving.

rocketchat

rocketchat is an open-source slack clone. It's super actively developed rn. They're working on a mobile app. I'm very interested to see where this goes.

https://github.com/RocketChat/Rocket.Chat

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment