[英]PHP stream_socket_client and facebook chat
$fp = stream_socket_client("tcp://chat.facebook.com:5222", $errno, $errstr, 20);
fwrite($fp, '<stream:stream to="chat.facebook.com" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" version="1.0" />' . PHP_EOL);
$temp1 = fgets($fp);
fwrite($fp, '<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="X-FACEBOOK-PLATFORM"></auth>');
$temp2 = fgets($fp);
fclose($fp);
die(var_dump( $temp1, $temp2 ));
是什么導致$ temp2 false
結果?
string(365) "<?xml version="1.0"?><stream:stream id="247B12CF" from="chat.facebook.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0" xml:lang="en"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-FACEBOOK-PLATFORM</mechanism><mechanism>DIGEST-MD5</mechanism></mechanisms></stream:features></stream:stream>"
bool(false)
問題是您的stream:stream
行應該只是一個開始標記,而不是完整元素。 在您的第一個fwrite
調用中刪除/作為倒數第二個字符。 當您發送完整的根元素而不是開始標簽時,服務器將斷開您的連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.