使用socket.io发送和接收信息(来自PHP文件)

时间:2012-04-19 03:11:05

标签: php ajax json socket.io

所以我花了一天时间在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的人都可以帮我一把吗?

1 个答案:

答案 0 :(得分: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'),

您可以从here

获得更多想法