手元にサーバー不要でWebSocket Client間で通信できるフリーサーバー Achex, Websocket.in が便利そう - Qiita
を調査後、Achexを利用していたが、しらばくしてからしばしば接続がcloseされるようになった。
デモページ
でも動作が怪しいため、自動再接続を組むよりは乗り換えることにした。
今確認すると好調のようで一時的な不調だったとも思われるが、まる一日は不調だっため書き直してしまった。
というわけで
WebSocket.in - The open and free WebSocket server for all.
との乗り換えというか比較になりますが、
WebSocket.inはかなり機能が貧弱。
基本的には立てたインスタンス全体へのstringエコーしか存在しません。
せめてもの機能としてAchexでのHubのようなルームがGETパラメーターとして付加できます。
wss://connect.websocket.in/YOUR_CHANNEL_ID?room_id=YOUR_ROOM_ID
- 単機能でAchexより柔軟性がなく
- Achexよりさらに盗聴されやすく
- 指定ユーザーにWhisperできないため接続全体に受信負荷がかかる
と、Achexにくらべ優位性はあまりありませんでした。
Achexが以後も安定を保つならばこちらのほうがよさそうです。
なお、Websocket.in単純なstringの送信しかできませんが、
JSONStringを送信すれば一応、指定ユーザーにだけ受信処理をさせるようなこともできます。
(当然その他のユーザーも受信はするので自分でなければ処理しない、という手間が必要になってきますが)
const commentJson = {
'to' : 'receiver',
'msg': []
}
socket.send(JSON.stringify(commentJson));
// 受信側
socket.addEventListener('message', function (event) {
console.log('message',event)
const json = JSON.parse(event.data)
console.log(json)
if (json.to == 'receiver') {
// 自分宛なので処理
}
}
この処理はAchex時点で書いているはずなので、
Achexからの乗り換えではもともとのto指定の値を受信側で見る処理を加えることと、
Auth処理を外すだけで簡単なWS機能なら乗り換えることができました。