Parallax Image

Cutls Code Archives


SNZ 2016

本当の意味でストリーミングに繋げられるクライアントはほとんどないのでは?~STREAMING_API_BASE_URLの話~

カテゴリ:Mastodon, TheDesk 投稿日:2019年7月5日

こんにちはCutls Pです。

巷には様々なMastodonクライアントが存在し、機能や利便性、UI、黒魔術などで他との差別化を図っています。ストリーミングに接続できることは、Mastodonクライアントの第一条件と言ってもいいでしょう。

追記(07/05 0:30)

リダイレクトされるらしい?というわけでリダイレクトされるか確認した(Nginxのconf変えた)ら何個かのクライアントはつながりました。まだ全部確認し終わっていません。

さて、https://cutls.comでアクセスできるMastodonインスタンスのストリーミングはwss://cutls.com/api/v1/streamingって今この場で言い切れますか。

残念ですが、このインスタンスのストリーミングはwss://str.cutls.comです(注意1)。https://cutls.com/api/v1/instanceでちゃんと言っています。urls.streaming_apiを見てください。

これは、Mastodonの.env.productionで宣言できます(参照)。ここで、wss://cutls.comでアクセスできないようにNginxのconfをいじり、wss://str.cutls.comをSTREAMING_API_BASE_URLに指定し、Nginxのconfもそう書いて、様々なアプリで検証してみました。

Web UI

当然いけます。

サードパーティクライアント

以下で検証してみました。

Android

  • Subway Tooter
  • Tootdon
  • Pawoo for Android
  • Fedilab(無料のやつからアップデートしていませんが)
  • Avalanche

iOS

  • Amaroq
  • iMast
  • Tootise
  • 星プテラノ

PC

  • TheDesk
  • Whalebird

Web

  • Pinafore
  • Halcyon
  • Hyperspace

無事繋がったのは…

  • iMast
  • TheDesk
  • Pinafore
  • Subway Tooter(リダイレクトあり)

以上でした。

こんなの別に対応しなくていいのでは?

もっともです。当然ユーザーがストリーミングに繋げられなかったら苦情来るに決まってますので、対応されることでしょう。

しかし、0ではありません。自分はスクリプトを組んで2000インスタンスほど調べましたが、日本の結構有名なインスタンスを含め、それなりの数(50程度)のインスタンスが STREAMING_API_BASE_URLを設定しています。

TheDeskが対応している、だと…

ガバ実装でおなじみのTheDeskですが、だいぶ前にリプライで「TheDeskでストリーミングに繋がりません」って来たので、「(超有名クライアント)でも繋がらないしサーバーの設定ミスでは」と返したものの、「Webでは繋がります」って来たのでいろいろ調べて原因を追究し、実装しただけです。

クライアント作者の皆様、対応をご検討願います。

注意1: 今はどちらでもつながるようにしています。