WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應(yīng)用
- 美國十大主機
StatusNet Jabber/Gtalk設(shè)置
作為微博平臺,支持通過IM發(fā)布、接收信息是基本功能之一,今天講的就是如何讓StatusNet支持Jabber/Gtalk。
Jabber服務(wù)器可以使用Openfire等開源項目自行搭建或者使用現(xiàn)成的平臺(如:Gtalk)。Jabber客戶端,用PHP的開源項目XMPPHP實現(xiàn)。這里將以Gtalk及XMPPHP為例講解StatusNet中Jabber/Gtalk的配置。
注冊Gtalk賬號[ ]
賬號作為Jabber機器人,用于接收和發(fā)送消息,我注冊的是用戶是canbeing.com@gmail.com,假設(shè)密碼為test。
下載XMPPHP[ ]
如果您已按“StatusNet基本安裝”或者“StatusNet快速安裝”做了配置,那么這步驟已經(jīng)完成,如果尚未做設(shè)置,請參考進行設(shè)置。
修改配置文件[ ]
在config.php里做如下設(shè)置(以我的gtalk為例):
# xmpp using gtalk example $config['xmpp']['enabled'] = true; $config['xmpp']['server'] = 'gmail.com'; $config['xmpp']['host'] = 'talk.google.com'; $config['xmpp']['port'] = 5222; $config['xmpp']['user'] = 'canbeing.com'; $config['xmpp']['encryption'] = false; $config['xmpp']['resource'] = 'canbeingxmpphp'; $config['xmpp']['password'] = 'test'; $config['xmpp']['public'][] = 'canbeing.com@gmail.com'; $config['xmpp']['debug'] = true;
安裝PHP擴展[ ]
需要安裝啟用PHP的openssl和mbstring擴展,因為Jabber的通信會用到TLS以及SASL。
修改部分代碼[ ]
statusnet 0.8.2 jabber部分代碼有點問題,需要做些修改: 在lib/jabber.php里找到函數(shù)jabber_connect,將原來的
if (!$conn) { return false; } $conn->autoSubscribe(); $conn->useEncryption(common_config('xmpp', 'encryption')); try { $conn->connect(true); // true = persistent connection } catch (XMPPHP_Exception $e) { common_log(LOG_ERR, $e->getMessage()); return false; } $conn->processUntil('session_start');
改為
if (!$conn) { return false; } try { $conn->connect(true); // true = persistent connection } catch (XMPPHP_Exception $e) { common_log(LOG_ERR, $e->getMessage()); return false; } $conn->processUntil('session_start'); $conn->autoSubscribe(); $conn->useEncryption(common_config('xmpp', 'encryption'));
支持接收消息[ ]
做完前面5步,已經(jīng)可以實現(xiàn)Jabber賬號的綁定了,但由于B/S的程序不能保持Jabber賬號一直在線,故無法接收消息。
statusnet提供了一個以daemon方式運行的php腳本在scripts/xmppdaemon.php,在命令提示符里運行如下全食即可打開一個窗口一直運行對應(yīng)腳本。
C:\Inetpub\php-5.2.12-nts\php -c C:\Inetpub\php-5.2.12-nts\php.ini H:\13.PHP\04.WorkSpaces\statusnet\statusnet-0.8.2\scripts\xmppdaemon.php(具體路
徑需要根據(jù)實際的PHP目錄及StatusNet設(shè)置)
可能碰到的問題[ ]
1、驗證時提示錯誤:Warning: stream_socket_enable_crypto() [streams.crypto]: this stream does not support SSL/crypto in H:\13.PHP\04.WorkSpaces\XMPPHP\XMPP.php
問題原因:未安裝openssl擴展
解決方案:安裝openssl擴展
2、Jabber驗證時提示:Auth fail
問題原因:Jabber服務(wù)器、用戶名、密碼設(shè)置錯誤或者程序自身的bug
解決方案:按照上面步驟3進行Jabber相關(guān)配置或者按照步驟5修改部分代碼
3、步驟6運行腳本時提示:Call to undefined function pcntl_fork()
問題原因:PHP未以fastcgi的方式運行,未能找到函數(shù)
解決方案:配置一個以fastcgi的方式運行的PHP來單獨運行這個daemon