日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

php pusher,php,pusher_Linux 下php使用 Pusher 遇到一个难题,php,pusher,php-linux-环境-开发 - phpStudy...

發(fā)布時(shí)間:2023/12/20 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php pusher,php,pusher_Linux 下php使用 Pusher 遇到一个难题,php,pusher,php-linux-环境-开发 - phpStudy... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Linux 下php使用 Pusher 遇到一個(gè)難題

最近在給賞金獵人做新的網(wǎng)站的時(shí)候想使用 Pusher 做一個(gè)首頁(yè)的吐嘈,我在本地測(cè)試都o(jì)k之后將它部署到了Linux上,可是打開(kāi)之后卻發(fā)現(xiàn)沒(méi)法實(shí)現(xiàn)消息發(fā)出,打開(kāi)Pusher的控制臺(tái)察看信息是顯示通道連接了,但是發(fā)送消息的事件沒(méi)有執(zhí)行。我打開(kāi)本地的(本地的和部署的使用同一個(gè)Pusher應(yīng)用),本地發(fā)的東西可以顯示在部署的那個(gè)上面。看了半天都沒(méi)找到問(wèn)題所在。

整個(gè)項(xiàng)目的結(jié)構(gòu)如下:

main.js 文件內(nèi)容:

(function($){

var pusher = new Pusher('18f9924cb7ee44a01ec0'),

channel = pusher.subscribe('imgondar');

Pusher.log = function( msg ) {

if( console && console.log ) {

console.log( msg );

}

};

channel.bind('send_message', function (data) {

Snarl.addNotification({

title: data.name,

text: data.msg,

timeout: 5000

});

});

$('form').submit(function(){

var say = $('#message').val();

if ( say ) {

$.post('post.php', $(this).serialize());

$('#message').val('').focus();

}

return false;

});

})(jQuery);

post.php 文件內(nèi)容:

require './lib/Pusher.php';

$app_id = '111087';

$app_key = '18f9924cb7ee44a01ec0';

$app_secret = '09c7dd1a71a92c90ce2d';

$pusher = new Pusher($app_key, $app_secret, $app_id);

$data = array(

'name' => htmlentities( getName().':' ),

'msg' => htmlentities(strip_tags($_REQUEST['message'])),

);

$pusher->trigger('imgondar', 'send_message', $data);

function getName(){

$name_array = array(0 => "小龍女",1 => "楊過(guò)",2 => "金庸",3 => "郭靖",4 => "黃蓉",5 => "歐陽(yáng)鋒",6 => "段譽(yù)",7 => "語(yǔ)嫣",8 => "虛竹",9 => "牧塵",10 => "Java",11 => "JavaScript",12 => "Python",13 => "C++",

14 => "HTML",15 => "什么鬼~~",16 => "想不出來(lái)了^^",17 => "阿列",18 => "就是想吐槽",19 => "路人甲",20 => "路人乙",21 => "跑龍?zhí)?#34;,22 => "主角",23 => "我是女主",24 => "我只是奴婢",25 => "請(qǐng)叫我容嬤嬤",26 => "我會(huì)降龍十八掌",27 => "小白",28 => "無(wú)語(yǔ)了!-_-",29 => "喬峰",30 => "不良人",

);

$index = rand(0, count($name_array)-1);

return $name_array[$index];

}

本地http://127.0.0.1/imgondarv8_test/訪(fǎng)問(wèn)之后點(diǎn)擊發(fā)送,在瀏覽器看到如下效果:

因?yàn)槲以?main.js 代碼中讓其輸出日志,打開(kāi)瀏覽器的控制臺(tái)看到:

打開(kāi)Pusher的控制臺(tái):

現(xiàn)在問(wèn)題來(lái)了,我把通過(guò) svn 把代碼部署到了Linux服務(wù)器上,通過(guò)如下域名訪(fǎng)問(wèn):

http://testgondar.helloarron.com/

點(diǎn)擊發(fā)送后沒(méi)有效果,Pusher控制臺(tái)和瀏覽器控制臺(tái)信息如下:

雖然連接了但是消息沒(méi)有發(fā)送成功。

但是我用本地的 http://127.0.0.1/imgondarv8_test/ 發(fā)消息可以在部署好的那個(gè)什么接收到(畢竟使用的是同一個(gè)Pusher 應(yīng)用),在瀏覽器控制臺(tái)顯示接受到的信息:

測(cè)試了半天就是post.php里面的$pusher->trigger('imgondar', 'send_message', $data);在Linux下面沒(méi)有執(zhí)行。

查看了Pusher.php文件的trigger函數(shù):

public function trigger ( $channel, $event, $payload, $socket_id = null, $debug = false, $already_encoded = false )

{

$ch = curl_init();

if ( $ch === false ){

die( 'Could not initialise cURL!' );

}

# Add channel to URL..

$s_url = $this->settings['url'] . '/channels/' . $channel . '/events';

# Build the request

$signature = "POST\n" . $s_url . "\n";

$payload_encoded = $already_encoded ? $payload : json_encode( $payload );

$query = "auth_key=" . $this->settings['auth_key'] . "&auth_timestamp=" . time() . "&auth_version=1.0&body_md5=" . md5( $payload_encoded ) . "&name=" . $event;

# Socket ID set?

if ( $socket_id !== null ){

$query .= "&socket_id=" . $socket_id;

}

# Create the signed signature...

$auth_signature = hash_hmac( 'sha256', $signature . $query, $this->settings['secret'], false );

$signed_query = $query . "&auth_signature=" . $auth_signature;

$full_url = $this->settings['server'] . ':' . $this->settings['port'] . $s_url . '?' . $signed_query;

# Set cURL opts and execute request

curl_setopt( $ch, CURLOPT_URL, $full_url );

curl_setopt( $ch, CURLOPT_HTTPHEADER, array ( "Content-Type: application/json" ) );

curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt( $ch, CURLOPT_POST, 1 );

curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload_encoded );

curl_setopt( $ch, CURLOPT_TIMEOUT, $this->settings['timeout'] );

$response = curl_exec( $ch );

curl_close( $ch );

if ( $response == "202 ACCEPTED\n" && $debug == false ){

return true;

} elseif ( $debug == true || $this->settings['debug'] == true ) {

return $response;

} else {

return false;

}

}

我覺(jué)得可能是linux下的php環(huán)境沒(méi)有開(kāi)啟curl模塊,于是自己寫(xiě)了一個(gè)簡(jiǎn)單的抓取百度首頁(yè)的例子,發(fā)現(xiàn)服務(wù)器上的curl是開(kāi)啟的。實(shí)在是找不到其他原因了,還請(qǐng)大神們給支支招。謝謝^^

相關(guān)閱讀:

DOM事件綁定回調(diào)函數(shù)執(zhí)行過(guò)程是什么?

gitlab webhook 設(shè)置

哪里有介紹angular-material的樣式類(lèi)?

brackets編輯器怎么設(shè)置換行符?

使用fatfree框架,debug=3,為什么log都打到了php_error.log里面?

圖中紅框內(nèi)數(shù)據(jù)庫(kù)關(guān)聯(lián)符號(hào)是什么意思?

調(diào)試程序的時(shí)候暴露在console的參數(shù)信息不清除有什么危害?

使用PHP,當(dāng)curl初始化時(shí)產(chǎn)生解析錯(cuò)誤

react的super屬性是指什么?

谷歌學(xué)術(shù)搜索結(jié)果中abstract不完整,完整信息搜索引擎不提供嗎?

如何獲得iframe里的document

z-index 和 translateZ(0)的疑問(wèn)

pv量統(tǒng)計(jì),a標(biāo)簽點(diǎn)擊包括站內(nèi)和站外的鏈接

web app可以設(shè)0.5px寬的邊框嗎

那些ORM的庫(kù)要怎么解決+1-1這樣時(shí)的安全問(wèn)題

angularjs怎樣把有PHP代碼的共用部分提出來(lái)

批量查詢(xún)域名的注冊(cè)狀態(tài)

iOS開(kāi)發(fā), 如何通過(guò)HTTP Post發(fā)送這個(gè)符號(hào)"&"到服務(wù)器?

php站點(diǎn),點(diǎn)擊提交按鈕到返回結(jié)果都經(jīng)歷了哪些過(guò)程?

ionic有沒(méi)有其他一些開(kāi)源項(xiàng)目?

總結(jié)

以上是生活随笔為你收集整理的php pusher,php,pusher_Linux 下php使用 Pusher 遇到一个难题,php,pusher,php-linux-环境-开发 - phpStudy...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。