Synk - Q1 2017 Update

Bootstrap 4

So updating Bootstrap 4 and they decided to undo their poor decision to append everything at the smallest size with -xs.

That was a fun few days of fixing everything they changed. At least now it looks rather nice and I don’t have to worry about them ever changing things under my application ever again. It’s actually quite a slow process currently me to debug themeing as webpack has to compile every change into the component templates.

You can get around this by simply editing with chrome dev tools but it’s still a hassle when you make a lot of edits. So that took a big chunk out of my new work schedule.

Realtime with FeathersJS

Another thing changed with this update is being able to say I’m not hacking together my own websocket client. I am retrofitting the event emitter to reemit from Redis however, but this is so I can change the endpoint from Laravel and Feathers and not have to worry about updating the client.

The following video shows some of the features that are currently available in that auto restoring connections are now much more stable, completely killing the server does create some problems with keeping in sync with the room but that will be handled with specific syncrhonization objects. Creating and deleting rooms (authorized only) as well as joining rooms if you’re unauthorized. There isn’t much to it but it’s written in less lines due to feathers. It’s also much more testable at a higher level than just unit testing the components. Also with how feathers is built it allows for much easier filtering (think rooms).

So far the only abilities you can do is create rooms and delete rooms and submit sounds to be played globally, which gave me an idea for RoleIt in that sounds could be played be played within regions so groups could feel like they’re part of a larger living world. Obviously this is very far off and getting single rooms is priority but expanding from there I can see multi room regions being a cool feature.

Future

The next features are to finish out the room API and square away proper authentication between the two applications and the client. It will probably end up using JWT’s as they’re easy enough and built into feathers.

Baking the primus client code actually into the clientside is also a goal to figure out as none of the feathers or primus has actual type defintions for Typescript 2.x. Only mildly infurating.

Related Articles

What is Synk?

What? Synk is an application that allows a user to synchronize an action across many patrons in a room. In this case it …