kamecha / traqVimPractice

Unofficial traQ Vim/Neovim plugin.
MIT License
7 stars 0 forks source link

WebSocketの実装 #2

Open kamecha opened 1 year ago

kamecha commented 1 year ago

アクティビティの垂れ流しとか未読チャンネル管理とかをいい感じにしたい

kamecha commented 1 year ago

一つのバッファごとにwebsocketクライアントを対応づける方針でいこうかなぁ

このwebsocketクライアントの作成とバッファへの紐づけは別々にして、バッファに対応づかないクライアントも許すことにした方が後々便利かも

kamecha commented 1 year ago

バッファに紐づくとそのチャンネルを見てる事になる~とか? クリップバッファとかを実装した状態で、ファイラーっぽいのにwebsocketアクションを飛ばしたいときに便利かな?

kamecha commented 7 months ago

denops使ってwebsocket使ってる実装例あったので、参考になるやも bufpreview.vim

kamecha commented 7 months ago

本家traQでのwebsocket周りの処理

https://github.com/traPtitech/traQ_S-UI/tree/master/src/lib/websocket

kamecha commented 7 months ago

denoの標準機能で愚直でやるより、websocket用のライブラリを別で使ったほうが良さそう?

kamecha commented 7 months ago

https://github.com/websockets/ws

これとか使うか、 Deno.upgradeWebSocket的なのも使えるっぽい?

kamecha commented 4 months ago

低レベルなAPIも用意したいし、簡単に設定可能な感じにしたいわね

kamecha commented 4 months ago

あ、あと一気に色々実装するのは大変だし、一旦複数のソケットの確立とメッセージの自動更新ができたら、このissueは閉じとく

土台を生成するイメージ

kamecha commented 4 months ago

クライアントからWebSocketで繋ぐ方法のひとつであるnew WebSocket("wss://hoge')だと繋がらなかった....

というのも本家traQとのwebsocket通信にはクッキーが必要らしい

なんで、

が必要 ただ、WebSocket()に自由度が無くて、クッキーを載せられ無さそうなんで、別の手法を探す必要あり

現状だと、内部プロキシたてて、new WebSocket()の該当通信にクッキーを付与する手法を思いついた

kamecha commented 4 months ago

Denoでのプロキシだともしかすると fetchに付与する公式クライアント

が使えるかも