私はwebsocketサーバー用に動的に作成された部屋を作成しようとしています。私のファイルサーバーは、処理の進捗状況やそのようなもののように、クライアントがアップロードしたファイルに関する情報をクライアントに伝える必要があります。これは私の見解です。websocket server expressjsの動的ルーティング
export function myView(req, res) {
let file = req.file;
let socketpath = ('/sockets/' + socketid + '/') // A randomly generated id
let wss = new WebSocketServer({port: 3030, path: socketpath});
...
}
これは一度しか動作しません。できるだけ早く私は、サーバーに別のファイルを送信してくださいとして、私はこのエラーを取得する:私は、同じポートで別のWSSを作成していますので、
Error: listen EADDRINUSE 0.0.0.0:3030
at Object.exports._errnoException (util.js:873:11)
at exports._exceptionWithHostPort (util.js:896:20)
at Server._listen2 (net.js:1250:14)
at listen (net.js:1286:10)
at net.js:1395:9
at nextTickCallbackWith3Args (node.js:453:9)
at process._tickDomainCallback (node.js:400:17)
これは明らかです。しかし、私は各クライアントセッションのアップロードのための部屋が必要です、どうすればいいですか?
編集:私はこれをgoogleしましたが、何も見つかりませんでした。
動的ルートとは何ですか、なぜそれが必要だと思いますか?解決しようとしている実際の問題を説明する必要があります。すべてのクライアントに対して別々のwebSocketサーバーを作成する必要はありません。すべてのクライアントが接続する1つのサーバーを作成することができます。通常、クライアントは自分自身(誰であるか)を識別して、1つのサーバーがすべてのニーズに対応できるようにします。複数のサーバーを作成する場合は、それぞれ異なるポートに接続する必要があります。クライアントがアクセスできるようにCORSを使用する必要があります。 – jfriend00
@ jfriend00混乱して申し訳ありませんが、私はウェブソケットにはまったく新しいものです。ルートとは、クライアントが接続できる「部屋」のような意味です。したがって、たとえば:websockets.com/someroomまたはwebsockets.com/someroom2 –
クライアントに1つのWebSocketサーバに接続し、その後、どの部屋を希望するかについてのメッセージを送信してください。そして、あなたの質問を編集してくださいこれは単にコメントに入れるのではなく、または、クエリパラメータを使用して、最初の接続時に部屋を指定します。 – jfriend00