2

私はNodeJS(c9.ioを使用)にかなり慣れていないので、最近この病気に執着しています。

NodeJSを使用しているときに知りたいのですが。基本的なhtmlページのコンテンツをストリーミングすることは可能ですか?大きくなく、10人の同時ユーザーを許可するために特別ではありません。ただし、そのhtmlページに変更があった場合、ユーザーはすぐに変更を確認できます。これはどのようなイベントにも基づくことができますが、基本的には更新されるファイルの内容に基づいています。私は、上司に感銘を与えるための簡単なプロトタイプを作成し、NodeJSでそれを実行して、setIntervalajax投稿の現在の時代遅れの使用に乗ることを望んでいます。吐く

  1. 私は別の名前を聞き続けるので、このプロセスの名前は何ですか。
  2. 出来ますか?
  3. NodeJSに加えて他に何が必要ですか
  4. 良い出発点はどこですか?

ありがとう

4

2 に答える 2

6

わかりました、これは本当に簡単な例です。textareaはログインメンバーと同期します。

http、socket.io、express(ver3)をインストールしてください。

sudo npm install http, socket.io, express

そして、javascriptファイルを作成します。

server.js

var app = require('express')(), 
  server = require('http').createServer(app), 
  io = require('socket.io').listen(server),
  member_sockets = {},
  key;

server.listen(80);

app.get('/', function (req, res) {
  res.sendfile(__dirname + '/index.html');
});

io.sockets.on('connection', function (socket) {
  var user_id = socket.id;

  member_sockets[user_id] = socket;
  console.log("[login]-->", user_id);

  socket.on('txt_change', function (data) {
    for (key in member_sockets) {
      if (key != user_id) {
        member_sockets[key].emit("txt_change", data);
      }
    };
  });


  socket.on('disconnect', function (socket) {
    console.log("[logout]-->", user_id);
    delete member_sockets[user_id];
  });
});

同じディレクトリに、index.htmlファイルも作成します。

index.html

<!DOCTYPE html>
<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="/socket.io/socket.io.js"></script>
    <script>
      var socket = io.connect('http://localhost');
      socket.on('txt_change', function (data) {
        console.log(data);
        $("#txt").val(data.txt);
      });
      $(document).ready(function(){
        $("#txt").keyup(function(){
          socket.emit('txt_change', { "txt" : $(this).val() });
        });
      });
    </script>
  </head>
  <body>
    <textarea id="txt" style="width:200px;height:100px"></textarea>
  </body>
</html>

次に、次のコマンドでサーバーを実行します。

sudo node server.js

したがって、コードは次のように機能するはずです。 ここに画像の説明を入力してください

于 2012-11-11T08:11:05.663 に答える
1

socket.ioをチェックしましたか?socket.ioモジュールを使用してプッシュサーバーを簡単に作成できます。

http://socket.io/

于 2012-11-11T06:45:16.027 に答える