oestrich

oestrich

Gossip, a cross game (text-based) chat platform

One of the cool things that has spun off of ExVenture is Gossip, located at https://gossip.haus/.

Gossip is a cross game chat platform for text games (aka MUDs.) Gossip uses websockets as the underlying protocol for servers to connect to. The protocol is heavily documented so that anyone can connect their game to.

While Gossip is a Phoenix application, it does not use normal channels so as to not force the Phoenix protocol on to other (possibly non-elixir) applications.

There are some pretty cool websocket things (I think) going on in this project and the corresponding Elixir client that I’ve written, located also on GitHub.

https://github.com/oestrich/gossip

P.S. The name gossip comes from MUDs where the main chat channel was called gossip.

Most Liked

Qqwy

Qqwy

TypeCheck Core Team

Wooh! Very cool!

i love Multi-User Dungeons and I love what you’ve been building here. I’ll take some time to dig into the internals, because this is exactly my cup 'o tea. Thanks for sharing!

oestrich

oestrich

Some new updates, Gossip now scrapes older games using the MSSP protocol to get player counts. This was pretty cool to write, there is a simple telnet client that parses out binary telnet options.

I’m also starting to work on achievements. I have the CRUD set up for them, and they’ll push over to Grapevine for display. It’s always really fun to get new things pushing across the backbone sync between Gossip and Grapevine.

Next I’ll be working on unlocking achievements for characters over on Grapevine, the fun part.

oestrich

oestrich

In the last month Gossip has been merged with and renamed to Grapevine. The split was fairly confusing so while it’s still early I went with combining the two sites.

Other news, I’m working on a general purpose telnet web client for older games. This uses an internal gen_tcp gen_server that processes the possible binary telnet options in the stream and then forwards the text to the web browser. I was also able to keep the session alive between browser reloads with a DynamicSupervisor.

https://s3.amazonaws.com/midmud/images/2019-01-31-grapevine-web-client.png

I also did this on my weekly live coding stream as well if you want to watch the supervisor part in action.

Something I still need to figure out is how to deploy a new release without taking down existing connections. I think this means I need to spin up separate nodes, having all of the telnet connections living on a separate note that rarely needs to be redeployed.

Where Next?

Popular in Discussions Top

laiboonh
Hi all, I am trying to convince my team to use liveview over the current react. What are some of the points where one should consider us...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New
AstonJ
If a newbie asked you about Phoenix Contexts, how would you explain the basics to them? Feel free to be as concise or in-depth as you li...
New
crabonature
I’m still quite new to Elixir. As I understand we got in Elixir “multi guards” as convention to simplify one large guard with or’s?: de...
New
AlexMcConnell
The reason that Rails is as popular as it is is because it’s very easy for relatively inexperienced developers to get a lot of work done....
588 19675 166
New
Crowdhailer
I’ve been hearing much about the new formatter and it’s something I have been keen to try. I find examples buy far the most illuminating...
248 19365 150
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New
kostonstyle
Hi all How can I compare haskell with elixir, included tools, webservices, ect. Thanks
New
paulanthonywilson
I like Umbrella projects and pretty much always use them for personal Elixir stuff, especially Nerves things. But I don’t think this is ...
New
AstonJ
It’s been a while since we’ve had a thread like this, so what better way to kick off the year with :003: What does being an Elixir user ...
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29703 241
New
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
fireproofsocks
Forgive me if this is obvious, but how does one delete a database record WITHOUT selecting it first? Ecto.Repo — Ecto v3.14.0 has exampl...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36432 110
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement