我在本地如何用php語言向socket服務(wù)器發(fā)送數(shù)據(jù),并收到服務(wù)器推送結(jié)果
web-msg-sender好像是客戶端->服務(wù)端,服務(wù)端->客戶端之間的溝通,那么我如果用php向socket服務(wù)器推送數(shù)據(jù)呢?這個要如何實現(xiàn),我的假想是socket服務(wù)器那里提供一個接口,然后接口里引入socket服務(wù),再進(jìn)行相應(yīng)推送,代碼如下
$sender_io = new SocketIO(2120);
// 客戶端發(fā)起連接事件時,設(shè)置連接socket的各種事件回調(diào)
//
$post = $_POST;
if($post) {
$sender_io->emit('post_data', $post);
}
請問這樣做可以嗎?
不好意思這個問題我已經(jīng)解決了。php向socket服務(wù)端推送數(shù)據(jù)可以仿照首頁web-msg-sender項目,向socket服務(wù)推送的代碼在最下方,我貼一下:
<?php
// 指明給誰推送,為空表示向所有在線用戶推送
$to_uid = "";
// 推送的url地址,上線時改成自己的服務(wù)器地址
$push_api_url = "http://canteen.com:2121/";
$post_data = array(
"type" => "publish",
"content" => "這個是推送的測試數(shù)據(jù)",
"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);
當(dāng)時看的時候也不理解這段代碼是什么意思,現(xiàn)在用上了才清楚。