真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php定時(shí)發(fā)送數(shù)據(jù)給頁(yè)面,php定時(shí)發(fā)送數(shù)據(jù)給頁(yè)面不顯示

php 定時(shí)推送消息怎么做?

這個(gè)要用到服務(wù)器系統(tǒng)的計(jì)劃任務(wù),如果是linux服務(wù)器 的cron。代碼實(shí)現(xiàn)是非常消耗性能的,需要不停的循環(huán)執(zhí)行。

成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來(lái)公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過(guò)去的十多年時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如雨棚定制等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過(guò)硬的技術(shù)實(shí)力獲得客戶的一致贊賞。

PHP如何能夠定時(shí)發(fā)送短信

你寫個(gè)PHP文件,把要發(fā)送的學(xué)生的信息給讀取出來(lái),調(diào)用發(fā)短信的接口,在liunx下執(zhí)行定時(shí)任務(wù)就可以了,一個(gè)小時(shí)發(fā)送一次,這樣應(yīng)該就可以完成了

如何在php后端及時(shí)推送消息給客戶端

后端代碼

push.php

?php

use Workerman\Worker;

require_once './Workerman/Autoloader.php';

// 初始化一個(gè)worker容器,監(jiān)聽(tīng)1234端口

$worker = new Worker('websocket://0.0.0.0:1234');

// 這里進(jìn)程數(shù)必須設(shè)置為1

$worker-count = 1;

// worker進(jìn)程啟動(dòng)后建立一個(gè)內(nèi)部通訊端口

$worker-onWorkerStart = function($worker)

{

// 開(kāi)啟一個(gè)內(nèi)部端口,方便內(nèi)部系統(tǒng)推送數(shù)據(jù),Text協(xié)議格式 文本+換行符

$inner_text_worker = new Worker('Text://0.0.0.0:5678');

$inner_text_worker-onMessage = function($connection, $buffer)

{

global $worker;

// $data數(shù)組格式,里面有uid,表示向那個(gè)uid的頁(yè)面推送數(shù)據(jù)

$data = json_decode($buffer, true);

$uid = $data['uid'];

// 通過(guò)workerman,向uid的頁(yè)面推送數(shù)據(jù)

$ret = sendMessageByUid($uid, $buffer);

// 返回推送結(jié)果

$connection-send($ret ? 'ok' : 'fail');

};

$inner_text_worker-listen();

};

// 新增加一個(gè)屬性,用來(lái)保存uid到connection的映射

$worker-uidConnections = array();

// 當(dāng)有客戶端發(fā)來(lái)消息時(shí)執(zhí)行的回調(diào)函數(shù)

$worker-onMessage = function($connection, $data)use($worker)

{

// 判斷當(dāng)前客戶端是否已經(jīng)驗(yàn)證,既是否設(shè)置了uid

if(!isset($connection-uid))

{

// 沒(méi)驗(yàn)證的話把第一個(gè)包當(dāng)做uid(這里為了方便演示,沒(méi)做真正的驗(yàn)證)

$connection-uid = $data;

/* 保存uid到connection的映射,這樣可以方便的通過(guò)uid查找connection,

* 實(shí)現(xiàn)針對(duì)特定uid推送數(shù)據(jù)

*/

$worker-uidConnections[$connection-uid] = $connection;

return;

}

};

// 當(dāng)有客戶端連接斷開(kāi)時(shí)

$worker-onClose = function($connection)use($worker)

{

global $worker;

if(isset($connection-uid))

{

// 連接斷開(kāi)時(shí)刪除映射

unset($worker-uidConnections[$connection-uid]);

}

};

// 向所有驗(yàn)證的用戶推送數(shù)據(jù)

function broadcast($message)

{

global $worker;

foreach($worker-uidConnections as $connection)

{

$connection-send($message);

}

}

// 針對(duì)uid推送數(shù)據(jù)

function sendMessageByUid($uid, $message)

{

global $worker;

if(isset($worker-uidConnections[$uid]))

{

$connection = $worker-uidConnections[$uid];

$connection-send($message);

return true;

}

return false;

}

// 運(yùn)行所有的worker(其實(shí)當(dāng)前只定義了一個(gè))

Worker::runAll();

啟動(dòng)后端服務(wù)

php push.php start -d

前端接收推送的js代碼

var ws = new WebSocket('ws://127.0.0.1:1234');

ws.onopen = function(){

var uid = 'uid1';

ws.send(uid);

};

ws.onmessage = function(e){

alert(e.data);

};

后端推送消息的代碼

// 建立socket連接到內(nèi)部推送端口

$client = stream_socket_client('tcp://127.0.0.1:5678', $errno, $errmsg, 1, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT);

// 推送的數(shù)據(jù),包含uid字段,表示是給這個(gè)uid推送

$data = array('uid'='uid1', 'percent'='88%');

// 發(fā)送數(shù)據(jù),注意5678端口是Text協(xié)議的端口,Text協(xié)議需要在數(shù)據(jù)末尾加上換行符

fwrite($client, json_encode($data)."\n");

// 讀取推送結(jié)果

echo fread($client, 8192);

這里的uid不一定是用戶的id,也可以理解為任務(wù)id即 taskid

如何用php程序主動(dòng)向html頁(yè)面發(fā)送信息?

你說(shuō)的應(yīng)該是服務(wù)端主動(dòng)向客戶端推送消息, 這個(gè)只能使用Socket建立長(zhǎng)連接來(lái)實(shí)現(xiàn)。

客戶端實(shí)現(xiàn)比較簡(jiǎn)單, 大多數(shù)瀏覽器提供的應(yīng)該都有接口, 幾個(gè)方法就可以建立一個(gè)連接,然后進(jìn)行消息監(jiān)聽(tīng)就可以了,服務(wù)端實(shí)現(xiàn)稍微復(fù)雜點(diǎn), 不過(guò)你根本不用自己寫那些底層代碼, php平臺(tái)上有一個(gè)庫(kù)叫 "Workerman", 里面所有功能已經(jīng)幫你實(shí)現(xiàn)好了, 你看看文檔就能直接調(diào)用了, 很簡(jiǎn)單的。

php 實(shí)現(xiàn)定時(shí)發(fā)布文章 求步驟 越詳細(xì)越好 新人求學(xué)?。。?!

第一,PHP不可以定時(shí)發(fā)布文章,第二,你必須設(shè)置定時(shí)器

基于以上兩個(gè)問(wèn)題,如果是linux 可以用crontab,如果是window可以用定時(shí)服務(wù),具體怎么樣可以百度,

然后再寫一個(gè)PHP腳本,在定時(shí)器上添加這個(gè)腳本,這個(gè)腳本要能讀取數(shù)據(jù)庫(kù)。


分享名稱:php定時(shí)發(fā)送數(shù)據(jù)給頁(yè)面,php定時(shí)發(fā)送數(shù)據(jù)給頁(yè)面不顯示
網(wǎng)頁(yè)URL:http://weahome.cn/article/dsespsj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部