【问题标题】:How to create Push Service in PHP如何在 PHP 中创建推送服务
【发布时间】:2012-02-26 20:36:23
【问题描述】:

我尝试使用简单的 PHP 和 Javascript 在 PHP 中创建推送服务,而不使用任何库和套接字。

    <?
session_start();


function initiate(){
    echo'
    <div id="mainScreen">
    <form action="index.php" method="post">
        <p>Enter A Unique Identifier:</p>
        <label for="uid">UID:</label>
        <input type="text" name="uid" id="uid" />
        <input type="submit" name="enter" id="enter" value="Enter" />
    </form>
    </div>
    ';
}

if(isset($_POST['enter'])){
    if($_POST['uid'] != ""){
        $_SESSION['uid'] = stripslashes(htmlspecialchars($_POST['uid']));
    }
    else{
        echo '<span class="error">Please type in a Unique Identifier </span>';
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>HTTP Push</title>
<link type="text/css" rel="stylesheet" href="style.css" />
</head>

<?php
if(!isset($_SESSION['uid'])){
    initiate();
}
else{
?>

<div id="beatView"><?php
    if(file_exists("beat.html") && filesize("beat.html") > 0){
        $fileHandler = fopen("beat.html", "r");
        $beatContents = fread($fileHandler, filesize("beat.html"));
        fclose($fileHandler);

        echo $beatContents;
    }
    ?>
    </div>
    <form name="message" action="">
        <input name="msg" type="text" id="msg" size="100" />
        <input name="sendMsg" type="submit"  id="sendMsg" value="Send" />
    </form>

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    //When user will submit the form
    $("#sendMsg").click(function(){ 
        var clientmsg = $("#msg").val();
        $.post("post.php", {text: clientmsg});              
        $("#msg").attr("value", "");
        return false;
    });

    //Loading the beat file 
    function loadBeat(){        
         var prevHeight = $("#beatView").attr("scrollHeight") - 20;
        $.ajax({
            url: "beat.html",
            cache: false,
            success: function(html){        
                $("#beatView").html(html); //Insert log into beatView file
                var currentHeight = $("#beatView").attr("scrollHeight") - 20;
                if(currentHeight > prevHeight){
                    $("#beatView").animate({ scrollTop: currentHeight }, 'normal'); //Autoscroll 
                }               
            },
        });
    }
    setInterval (loadBeat, 1000);   //Check the beat every second


});
</script>
<?php
}
?>
</body>
</html>

我用它来启动我的服务,然后创建另一个处理请求的文件。还使用节拍文件来管理内容。

<?
session_start();
if(isset($_SESSION['uid'])){
    $text = $_POST['text'];

    $filePointer = fopen("beat.html", 'a');
    fwrite($filePointer, "<b>".$_SESSION['uid']."</b>: ".stripslashes(htmlspecialchars($text))."<br>");
    fclose($filePointer);
}
?>

但是,在整个场景中,我的客户正在发起一个请求。我只是希望它是一个推拉式服务,我该怎么做。

我不想使用任何第 3 方库或任何套接字库。

【问题讨论】:

    标签: php service push-notification push


    【解决方案1】:

    我建议您为此研究 websockets。有多种创建推送服务的方法,但 PHP 比较棘手。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-03
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 2013-01-08
      相关资源
      最近更新 更多