4

チャット機能 (Socket.IO を利用) を備えた Express を使用して、複数ページの Web アプリケーションを開発しています。ユーザーは、他のユーザーを非公開の共有チャットルームに招待できます (これには、共有製図板などの他のコンポーネントもあります)。招待トランザクションの完了時に、両方のユーザー (招待者と招待者) を別の URL にリダイレクトしたいと考えています。

socket.io はルートのリクエスト オブジェクトとレスポンス オブジェクトにアクセスできないため、socket.io のインスタンスをルート処理に渡そうとしました。ページの更新時に重複するイベント ハンドラーが積み重なる問題は別として、Express は、応答が既に送信された後にリダイレクトを実行しようとするとエラーをスローします (これは理にかなっています)。

これを実現する唯一の方法は、Socket.IO からそれぞれに新しいチャットルーム URL を渡して、クライアントでリダイレクトを発生させることです。ただし、状態転送をクライアントに依存するのは脆弱すぎるようです。

他のオプションはありますか?私が求めているものを実装する最良の方法は何ですか?

4

1 に答える 1

1

クライアントで行うには脆弱すぎるかどうかはわかりません。ソケットを介して URL を送信するだけで、window.location.href = redirectUrlまたは$('div').load(newContentUrl)jQuery を使用して実行できます。

于 2012-07-01T17:26:32.793 に答える