読者です 読者をやめる 読者になる 読者になる

リアルタイムな掲示板で最終掲示板戦争に参戦

ちょっと前から ChatBBS というリアルタイムな掲示板を作っていて、タイミングよく Twitter で id:r7kamura最終掲示板戦争 の話を知ったので参戦することにした。

f:id:ttanimichi:20161002233503g:plain

2ch は Web1.0 の遺物

2ch は10年前の技術のまま全く進歩していない。Ajax すら使っていない、あのいかにも古臭いフォームで投稿する度にページ全体がリロードさせるのも許せないし、過去ログの dat 落ちとか意味が分からない。ひとつのスレッドに 1000 件までしか投稿できないという制限がクソで、それをユーザーがタイトルに "Part 42" みたいな通し番号を自分たちで振るという運用でカバーしている現状が残念すぎる。あんなゴミみたいなサイトが未だに相当なユーザー数を抱えているのは違和感があるし、今の技術を使えばもっと良い掲示板を作ることができるんじゃないかなと思っていた。

リアルタイムな電子掲示板

チャットと掲示板の合いの子という意味で ChatBBS という名前にした。

https://chatbbs.jp/

機能的にはまだシンプルだけど、誰かが投稿をするとリアルタイムにスレが更新される。自分の投稿も即スレに反映される。Slack がすごいなーと思っていて、今後は記事や画像のインライン展開みたいな Slack の一部の機能も参考にして機能追加していきたいなと思う。

技術的な話

Rails で作っている。リアルタイム通信には WebSocket を使っていて、WebSocket サーバーの部分は EventMachine ベースで作ったんだが、Node.js でゼロから作り直したいと思っている。Jack さんの 「Socket.IO は必要か?」または「WebSocket は通るのか?」問題について 2016 年版 を読んで、最近は Socket.IO について調べていたんだけど、WebSocket を扱う場合は Socket.IO で作るのが良さそうだと思った。Socket.IO が提供してくれる API はよく出来ているし、 Socket.IO を使わずに WebSocket で通信するアプリケーションを作る場合、結局は Socket.IO の API を再発明することになってしまうんじゃないかなと思った。