【问题标题】:Sending and receiving information (from a PHP file) with socket.io使用 socket.io 发送和接收信息(来自 PHP 文件)
【发布时间】:2012-04-19 03:11:04
【问题描述】:

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

【问题讨论】:

    标签: php ajax json socket.io


    【解决方案1】:

    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获得更多想法

    【讨论】:

    • 所以我不能通过socket.io自动获得投票数?我经常被告知要使用 socket.io 而不是长轮询来获得投票数......
    • 好的,谢谢,我开始担心我在浪费时间。
    • 我现在添加了更多细节
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 2015-01-16
    • 2012-06-11
    • 2015-04-06
    • 2019-09-12
    • 1970-01-01
    相关资源
    最近更新 更多