未完成だけど、リポジトリを作った。https://github.com/neguse/gomelift
前回から Socket.IO の実装を行って、ライブラリとしての形ができつつある。結局 Ack を返すためには gomasio は使えず、自前で Socket.IO を実装している。だいぶ手抜きではあるが、一応 StartGameSession に対して Ack を返して、ゲームセッションの作成が完了するところまで確認できている。
ある程度形になったあと、他にも Socket.IO クライアントの Go 実装をしていた方を見かけた。 https://github.com/graarh/golang-socketio 一旦見なかったことにしてすすめる。メンテ放置されてそうだし…
サーバから来たメッセージに対する Ack を返すのは割と簡単にできたが、クライアントから送信したメッセージに対するサーバの Ack を再度クライアントで受け取れるようにするところがちょっと難しそう。メッセージの ID をもとにどこに返すかを覚えておく必要があるが、Go だとチャンネルを使うのがいいのだろうか。インタフェースいじらないと難しいかも。
また、受信したメッセージをデシリアライズするところがあまりきれいに書けていない。こちらももう少しインタフェースを考えないといけなそう。
だいぶ先が見えてきたので、もうひとがんばりではありそう。