2

所以我花了一天时间在 socket.io 上学习教程,但由于那里的教程数量极少,我发现自己完全陷入困境。我想使用 socket.io 将变量发送到 PHP 页面并检索/显示信息。

超级简单的 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 服务器是两个独立的服务器。您可以做的是从 PHP 服务器获取 HTML 文档并使用 socket.io 将其发送回客户端。或者可能会根据来自 Web 套接字的输入重定向页面。

如果您想向客户端(HTML 页面,而不是 PHP)发送一些数据,那么这就是 socket.io 的目的。

你可以这样做,

当人们投票时,将数据发送到节点服务器(+1)计数,然后使用 socket.io 广播更新的投票计数(也许你也可以调用 PHP 并保存投票计数),这是如何调用网页(你的PHP服务器)与您的节点服务器..

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

你可以从这里得到更多的想法

于 2012-04-19T03:22:48.977 回答