投稿できるかな?
もし良かったこういう記事書きました。正解が書いてあるところもあるので自力で解決したい場合は読まない方がいいかもですが(^^;)
「Nostr本演習のアンチョコ(JavaScript覚え書き)~その2~」
https://showhyuga.blogspot.com/2023/06/nostrjavascript2.html
こんにちはー。
……あの、ひょっとして神です?
シリアライズって「シリアスになる」ってことじゃないの?
あ、はい。演習の 1-3 でハマってます。
あ、ブルースカイからメール来てる。英語だから読まないけど。(アカン態度)
しかしこんなに間違った、しかも適当なのを投げつけられて、wss://relay-jp.nostr.wirednet.jp は「いいかげんにしろ!」てなんないのかな。
申し訳ない。
"Error: can't serialize event with wrong or missing properties"
……間違ったプロペルティーズでシリアスになんなよ、ってことか?
リラックスしていけってことだな!
来た……これが「投稿内容をコマンドライン引数として設定してください」の壁か……(ちょっと嬉しい)
というわけで当然、こんなこともやってみる。
const sub = relay.sub([{"kinds":[1], "limit":3}]);
うおお! 親切な方が答えを教えてくれましたぁー!
うああ! 行けました! ありがとうございます!
wss://relay-jp.nostr.wirednet.jp
を
wss://relay-jp.nostr.wirednet.j
にするとエラーが出るんで、て言うかちゃんと「failed to connect」が返るんで
// メッセージタイプごとにリスナーを設定できる
までは上手く行ってると思うんだけどな。
じゃばすくりぷと力が足りん。
relayInit() にはカッコの中にリレーサーバのURLを入れる、Relay.connect() は小文字にする、Relay.sub() も同じく小文字にしてカッコの中に {"kinds":[1]} を入れる、でアホみたいに出てたエラーが消えたが……今度は何も表示されぬ……
ぐぁー。やっぱり来ました、「node のバージョン問題」。
一応動くかな?
と、のすた本を読み返したらやっぱり
{ "kinds":[1]}
のとこを
{ "kinds":[1], "limit": [10]}
とかイジっちゃいたくなるよね?
まあ
[ 'NOTICE', 'invalid: "[2].limit" must be a number' ]
とか言われちゃうんすけど。(どうやらリミットの方は配列じゃないらしい)
でも何かイメージは掴めた気がする。自分や他の人のプロフページを見たときにノートやフォロー数が一発で出るんじゃなくて、徐々に整うのは多分、端末の場合なら流れてくるのをブラウザ上のアプリケーション(クライアント?)が拾ってレンダリングしてる過程を見てるんじゃなかろうか。
知らんけど。