4

NodeJS サーバー側でプログラミングしています。クライアント ブラウザー側で JavaScript 関数を呼び出したいと考えています。サーバー側で関数を呼び出しているかのように、サーバー側からクライアント ブラウザー側で時々関数を呼び出すことができれば幸いです。

これを行うことができるフォーム、コメット、または RPC はありますか?

4

4 に答える 4

2

socket.io を使用すると、クライアントがリッスンするサーバー (この場合は「for_client」) からイベントが発行され、クライアント側イベント (この場合は「for_server」) のリスナーが設定されます。イベントの数に制限はなく、メソッドの呼び出しに使用できるコールバックを持つことができます。

var io = require('socket.io').listen(80);

io.sockets.on('connection', function (socket) {
  socket.emit('for_client', { someData: 'if necessary' });
  socket.on('for_server', function(data) {
     doSomethingServerSide(data);
  });
});

function doSomethingServerSide(data){ console.log(data); }

クライアント側

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost');
  socket.on('for_client', function (data) {
    console.log(data);
    socket.emit('for_server', { data: 'data' });
  });
</script>
于 2013-07-01T19:27:39.553 に答える
0

Socket.IOを使用すると、node.js とフロントエンド JS の間で永続的な通信を確立できます。

メッセージを発行し、両側から他のメッセージを購読できます。双方向通信であるため、要求/応答は必要ありません。任意の側から発行するだけで、別の側のコールバックによってキャッシュされます。

于 2013-07-01T15:57:02.990 に答える