Cutls Code Archives

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

こんにちは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

iOS

PC

Web

無事繋がったのは…

以上でした。

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

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

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

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

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

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

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