2

そのため、socket.ioでチュートリアルを受講することに一日を費やしましたが、チュートリアルの数が圧倒的に少ないため、完全に行き詰まっていることに気付きました。PHPページに変数を送信し、情報を取得/表示するために、socket.ioを使用したいと思います。

超シンプルなapp.js(socket.ioサーバー)

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

io.sockets.on('connection', function (socket) {
  socket.on('message', function () { });
  socket.on('disconnect', function () { });
});

超シンプルなsocket.ioインデックスページ。

 <script>
  var socket = io.connect('http://localhost/');
  socket.on('connect', function () {
    socket.send('hi');

    socket.on('message', function (msg) {
      // my msg
    });
  });
</script>

情報を送信したいphpファイル...

<?php
$hostname = 'localhost';
$username = 'root';
$password = 'root';
$database = 'database';
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $dbh->prepare("SELECT * FROM comments WHERE pid = :pid");
    $pid = $_GET['pid'];
    $stmt->bindParam(':pid', $pid, PDO::PARAM_STR);
    $stmt->execute();
    $result = $stmt->fetchAll();
    }
catch(PDOException $e)
    {
    echo $e->getMessage();
    }
    $stmt->execute();
    echo $stmt->rowCount();
$dbh = null;
?>

つまり、基本的に私がやりたいのは、WebSocketを使用して投稿のIDをPHPページに送信し、カウントを取得して、投票時にカウントを自動的に更新することです。しかし、私はこれを達成する方法を見つける(または理解する)ことができません。

ここで私に手を貸してくれるnode.js/socket.ioに精通している人はいますか?

4

1 に答える 1

0

Node.js と PHP サーバーは、2 つの独立したサーバーです。できることは、PHP サーバーから HTML ドキュメントを取得し、それを socket.io を使用してクライアントに送り返すことです。または、Web ソケットからの入力に応じてページをリダイレクトすることもできます。

クライアント (PHP ではなく HTML ページ) にデータを送信する場合、それが socket.io の目的です。

あなたはこのようにこれを行うことができます、

人々が投票すると、データをノード サーバーに送信します (+1) カウント。次に、socket.io を使用して更新された投票数をブロードキャストします (PHP を呼び出して投票数も保存できる場合があります)。 PHP サーバー) をノード サーバーに接続します。

http = require('http');
var connection = http.createClient(8080, 'yourPhpServer/page'),

ここからさらにアイデアを得ることができます

于 2012-04-19T03:22:48.977 に答える