0

クライアントに通知を送信するNodeJSサーバーを実行しています。somebodyたとえばsomething、クライアントがグリッドから行を削除すると、Socket.ioは行が削除されたことを残りのクライアントに通知します。

その例ではactionType: rowdeleted、socket.io メッセージに次のようなものを追加actionTypeし、クライアント側で を検出してグリッドを更新することができます。とにかく、問題は無限の数のアクションが存在する可能性があることです(そして新しいアクションが追加される可能性があります)ので、クライアント側でアクションタイプごとに関数をコーディングすることはできません.

次に、socket.io 経由でコードを送信してクライアントに実行させることができるのではないかと考えましたが、それが私がやりたいことを実行するための最良の方法であるかどうかはわかりません。また、クライアントはそのコードをどのように実行しますか? 経由eval

私はどんな提案にもオープンです:)

4

2 に答える 2

1

似たようなものを検討しましたが、eval としてではありません。サーバー側であっても、どこかで実行するコードが必要であることは明らかです。どのスクリプト/コード/アクションを取得して実行するかをクライアントに知らせる方法を作成してみませんか。

私は同様の必要性から同様のものを使用しました。アクション タイプは、サーバー上の特定のパス (/js/actions/ACTION.js) にあるスクリプトを参照していました。アクションを実行するコマンドを取得すると、クライアントはアクションがあるかどうかを確認し、ない場合はアクションを取得します。その後、スクリプトでアクションを実行します。RequireJS は、このような場合に適しています。持っているアクションと持っていないアクションを追跡します。また、必要な機能を実行する前に、アクションがない場合はアクションを取得するようにします。

于 2013-09-06T19:10:03.543 に答える
0

eval悪です (c)

そのため、クライアント側でアクション タイプごとに関数をコーディングすることはできません。

クライアントで処理されない場合、サーバーからイベントを発行しても意味がありません

サーバーが発行しているイベントの種類ごとにクライアントハンドル関数を用意してください。それ以外の場合は、すべてのイベントにバインドしてから処理します

于 2013-09-06T12:29:07.193 に答える