generated at
✅websocketを使い回す (scrapbox-userscript-std)

scrapbox-userscript-stdwebsocket系関数として joinPageRoom() がある
これは一つのsocket通信を用いて何回も編集操作を行う関数

こいつの実装がよくないので直す

今まで
scrapbox-headless-scriptから移植したものそのまま

これから
外部からSocketを渡せるようにする
渡さない場合は従来どおり内部でSocketを作り、処理が終了した段階で破棄する
ts
const socket = await makeSocket(); // Socketの作成 // 一番最後の変数にsocketを渡す await patch(project, title, updater, { socket }); await deletePage(project, title, { socket }); await pin(project, title, { socket }); for await (const event of listen(eventname, { socket })) { // ... }

pros
実装を統一できる
違うページの編集操作を一つのsocket上で行える
📝roomを使わずにページ編集するだと1操作ごとに新しいsocketを開かないといけなかった

やっていないこと
commit cursor の購読関数の実装
listenPage(project, title, ["commit", "cursor"], { socket });

2022-03-03
17:43:00 connect() disconnect() の処理をミスってた
接続・遮断したあとにlistenerを登録していたので、永久に接続・遮断eventを取得できなかった
16:52:09 merged


#2022-03-03 12:35:45