簡體   English   中英

PHP stream_socket_client和Facebook聊天

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM