問題タブ [misultin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - Misultin Erlang HTTP ライブラリの TCP/IP ソケットに関連する WebSocket
私は、Misultin のWeb ソケットのサポートに感銘を受けたと言わざるを得ません (ここにいくつかの例があります)。私の JavaScript はリクエストを発行し、「ごくわずかな」遅延またはラグで応答を取得しています。すばらしい !!
WebSocket のデータ ハンドラ ループがどのように見えるかを見ると、少なくとも Erlang の基本的な方法では、通常の TCP/IP ソケットのループに似ています。
このコードは、Misultin によって生成されたプロセスで実行されます。これは、以下のようにサーバーを起動するときに指定する関数です。
これに関するその他のコードについては、サンプル ページをご覧ください。いくつか質問があります。
質問 1: Erlang の TCP/IP ソケットで通常行うように、Web ソケットの制御プロセスを変更できますか? 質問 2: WebSockets
gen_tcp:controlling_process(Socket,NewProcessId)
をサポートする唯一の Erlang/OTP HTTP ライブラリはMisultinですか? 残りはどこですか?
編集: さて、Misultin から WebSocket コントロールを転送できるようにする必要がある理由は、
WebSocket のプールを制御することを 考えてください
gen_server
。たとえば、ゲームサーバーです。現在の Misultin の例では、すべての WebSocket 接続に対して制御プロセスがあります。つまり、すべての WebSocket に対して生成されたプロセスがあります。今、私はErlangがプロセスを持つヒーローであることを知っていますが、私はこれを望んでいませんgen_server
.WebSocketの制御権限を処理するとすぐにこれらの初期プロセスが終了することを望んでいます. これらの WebSocket 間でデータを切り替えるには、これが必要です。現在の実装では、Misultin の handle_websocket プロセスを次のように
gen_server
追跡する必要があります。Pid
上記のアイデアは非常にうまく機能し、すべての制御プロセスを Mnesia Ram テーブルに保存し、アプリケーションが特定のユーザーにメッセージを送信したい場合は、特定の基準に照らして検索します。ただし、私が達成したいことでは、現実の世界ではプロセスが多すぎてサーバーがクラッシュする可能性があることに気付きました。Web Socket ごとにプロセスを用意するよりも、少なくとも 1 つで何千もの Web Socket を制御したいのでgen_server
、メモリを節約できます。
提案: Misultin の作成者は、彼の次のリリースで Web ソケット グループの実装を作成してくれる可能性があります。これにより、WebSocket のグループを同じプロセスで制御できます。これは次のようになりますNitrogen's Comet Groups
彗星のつながりが同じ制御下にグループ化されます。これが不可能な場合は、これらの Web ソケットの制御を引き継ぐことができる API を提供して、自分で制御する必要があります。
エンジニアはこれについてどう思いますか?
これについてのあなたの提案やコメントは何ですか?
Misultin の作成者は、これについて何か言うことができます。ありがとうございます
erlang - ミスルチン。misultinのリクエストからサブドメインの値を取得するにはどうすればよいですか?
リクエストがhttp://subdomain.example.com/blah-blahの場合、サブドメインの値を取得するにはどうすればよいですか?
erlang - Erlang / Misultin / erlsom エラー / プロセスが停止しました
アーランコード:
コードをコンパイルしてサーバーを起動した後、localhost:8080/ を開くと、シェルから次のエラーが表示されました。
ChicagoBoss 用の同じ lib 'erlsom' が正常に機能しました...
その後、xmerlで試してみましたが、結果は似ています。
javascript - erlang misultin の Websocket - ws_loop ではなく常に loop にリクエストを渡す
次のように、misultin で websocket をセットアップするのはとても簡単です。
ただし、私のjavascriptコードでは、常にではなくにws = new WebSocket("ws://url")
渡されます。handle_http()
handle_websocket()
私が何を逃したか知っている人はいますか?