LoginSignup
2
3

More than 3 years have passed since last update.

フリーWebSocketサーバーをAchexからWebsocket.inへ変更

Last updated at Posted at 2019-08-16

手元にサーバー不要で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機能なら乗り換えることができました。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3