PHP 实现页面推送 & APP与浏览器页面实时交互

   今天因我的同桌想做一个公司内部的管理后台,但是想实现一个效果:管理后台打开一个页面,页面上有一个二维码,二维码方便有一个绿色的按钮,当客户端扫描二维码之后,管理后台的按钮由绿色变为红色。

方案一、js

             最简单的办法就是,APP请求服务器,服务器去改变对应数据里的状态字段,页面里套用一个js 的ajax方法实时请求这个字段的值,但是这样对于一个页面的这个做法感觉有点因小失大了,如果页面有好多数据量的话,页面会很慢,还会很卡。随意被pass了。

         



方案二、webSocket

              按照 web实现推送消息的机制,服务器作为socket服务,客户端扫完二维码之后向服务器推送消息,服务器再向对应UID的页面推送消息

             

            

代码:

    1、去网站下载对应的程序包,放到服务器开socket服务     http://www.workerman.net/web-sender,按照上面说的取搭建就好了

    2、分为  接收接口、发送两个接口

         接收接口:负责连接socket服务器,取消息

        发送接口:负责连接socket服务器,发送消息

接收:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<link href="main.css" rel="stylesheet" type="text/css" />
<script src='//cdn.bootcss.com/socket.io/1.3.7/socket.io.js'></script>
<script src='//cdn.bootcss.com/jquery/1.11.3/jquery.js'></script>
<script src='/notify.js'></script>
</head>
<body>

<script>
$(document).ready(function () {
    // 连接服务端
	
    var socket = io('http://localhost:2120');
    // 连接后登录
    socket.on('connect', function(){
    	socket.emit('login', 596272866);
    });
    // 后端推送来消息时
    socket.on('new_msg', function(msg){
         $('#content').html('收到消息:'+msg);
         $('.notification.sticky').notify();
		 
		 
		 alert(msg);
    });
    // 后端推送来在线数据时
    socket.on('update_online_count', function(online_stat){
        $('#online_box').html(online_stat);
    });
});
</script>

</body>
</html>
发送:

<?php
// 指明给谁推送,为空表示向所有在线用户推送
$to_uid = "596272866";
// 推送的url地址,上线时改成自己的服务器地址
$push_api_url = "http://localhost:2121";
$post_data = array(
   "type" => "publish",
   "content" => $_REQUEST['content'],
   "to" => $to_uid, 
);
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $push_api_url );
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data );
curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:"));
$return = curl_exec ( $ch );
curl_close ( $ch );
var_export($return);






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淋过雨的街头

你的鼓励是我创作的做大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值