[ 新規に投稿する ]

createHttpServer の存在意義がわからない人が多そうNo.10571
こみやんま さん 25/02/17 15:13 [ コメントを投稿する ]
  https://help.maruo.co.jp/hidemac/html/250_JavaScript_Hidemaru_createHttpServer.html

秀丸マクロの createHttpServer に関するヘルプについてですが、
β版の議論を知らない人が読んだ場合、
「で、結局これって何に使うの?」 
という疑問を持つ可能性が高いと感じています。

ヘルプにある
・CORS回避
・Webページをホストするためのものではなく、URLを元にtext/plainでテキストの応答ができるだけ

これが何を示唆するのか感じとれない人が多いかと。

@「fileプロトコルで開いたHTMLファイル」は通常は fetch 出来ないが[=fetchしてもアクセス先が拒否する]、
 このcreateHttpServerのサーバーのURLは、「http://localhost:port への fetch」が出来るようにしている。
 (CORS回避の恩恵)
A個別ブラウザ枠やレンダリング枠にて指定する urlプロパティを http://localhost:portに指定することは想定しておらず、
 fetchの先を http://localhost:port とする。
 (コンテンツヘッダーが text/plain なんだから、ブラウザ枠やレンダリング枠のURLに指定する意味がない)
B結果「個別ブラウザ枠」や「レンダリング枠」側から「秀丸の編集ペイン」の情報をリアルタイムに近い形で拾うことが簡単に出来る。

ここが辺が紐づかないんじゃないのかと。

ぐちゃぐちゃ書いてもきっとわけがわからない人の方が圧倒的に多いだろうから

https://秀丸マクロ.net/?page=nobu_tool_hm_webview2_renderpane_simple_server2

この辺のサンプルを(さらに短くしたりエラー処理省いたりして)ヘルプに掲載すれば
多少心得がありさえすれば、あとは見真似でなんとかすんじゃないですかね。
[ ]
RE:10571 createHttpServer の存在意義がわからない人が多そうNo.10572
秀丸担当 さん 25/02/18 09:44 [ コメントを投稿する ]
  例があったらいいということで、ご意見参考にさせていただきます。

試していたら別の問題が見つかってしまいました。
本来ドキュメントを閉じたらオブジェクトも消えるはずが、残ってしまう問題がありました。
秀丸ファイラーで24H2の問題を回避するものを、念のため秀丸エディタでもしていたのがだめでした。
このあたり従来通りにして早めに正式を出そうと思います。
[ ]
RE:10571 createHttpServer の存在意義がわからない人が多そうNo.10573
western さん 25/02/18 20:27 [ コメントを投稿する ]
  @ URL が file:// あるいは http://localhost
A URL が@ではない外部サイト
▼ 秀丸マクロ⇒WebView2 方向のメッセージ通知
▲ WebView2⇒秀丸マクロ 方向のメッセージ通知

ブラウザ枠 @▼:URLに javascript: で任意
ブラウザ枠 @▲:URLの変化の観測程度(同期的な通知は不可)
ブラウザ枠 A▼:URLのquery等で決められたパラメータを指定できる程度 (ページ遷移発生)
ブラウザ枠 A▲:URLの変化の観測程度(同期的な通知は不可)
レンダリング枠 @▼:URLに javascript: で任意
レンダリング枠 @▲:window.chrome.webview.postMessage()
レンダリング枠 A:指定できない

だったのが、createHttpServer によって

ブラウザ枠 @▲:createHttpServer() に対して GET URL 文字列で任意
ブラウザ枠 A▼:createHttpServer() からの GET レスポンス文字列で任意 (要polling)
ブラウザ枠 A▲:createHttpServer() に対して GET URL 文字列で任意

が出来るようになるのが最大の変化と思われます

server.port と server.key で、悪意のある不正なアクセスはほぼ回避できた上で
server.port と server.key を URL や query で外部ページに受け渡せるのであれば、
ブラウザ枠に表示される任意の外部のウェブサイトから秀丸マクロに任意のテキストを送れる
というのが、従来にない秀丸エディタ特化の外部ウェブサービスが作れるので、これが非常に強力です
(従来でもjsマクロの駆使で外部サイトのAPIレベルの連携は可能だったが、
 それが外部のHTMLページ主導で提供されるサービスとして可能になるのが大きなメリット)

こみやんまさんのサンプルで言えば HmTextUpdateServer.html をブラウザ枠に読み込ませるURLが
ローカルである必要が無く、例えば github.io (Pages) 上にホスティングされたURLでも良い
という実演があれば、活用方法(と危険性)に気付く人も出てくると思われます
[ ]

[ 新規に投稿する ]