2025-05-05 23:30
最近はとある事情からwebsocketサーバのプログラムを書いています。ちょっと頼まれごとみたいなものです。
websocketはwebのプロトコルでpush通信するための考えられたプロコトルで、RFC 6455で定義されています。今はドラフトじゃなくて正式な規格として登録されています。 世間的に通信のpush通知は、ロングローポリングやcomet、独自プロトコルによる実装がありました。TCPなpush通知はwebsocketとMQTTがあると思います。
websocketはwebブラウザをクライアントにしやすいため開発者的には簡単に試せるし使ってもらえる、MQTTはプロトコルヘッダーが小さいことやサーバデーモンを実装したMosquittoでだいたいやりたいことは実装されているということがあります。メッセージの送信先を絞りたいといった通信先制限の実装はMosquittoはもちますが、websocketデーモンの実装はbroadcastするものが多いため、実際の利用用途のことを考えた実装はMosquittoがよいと思いますので、ガチ利用のはMosquittoが本命だと思います。
さて開発中のデーモンはwebsocketサーバなわけですが、クライアントとなるwebアプリも実装しないといけません。アフェリエイトも組み込んでみましょうか。