首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stream_socket_client和facebook聊天

stream_socket_client和facebook聊天
EN

Stack Overflow用户
提问于 2011-03-27 22:16:38
回答 1查看 934关注 0票数 0
代码语言:javascript
复制
$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结果的原因是什么?

代码语言:javascript
复制
    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)
EN

回答 1

Stack Overflow用户

发布于 2011-03-28 11:15:38

问题是stream:stream行应该只是一个开始标记,而不是一个完整的元素。在第一个fwrite调用中删除倒数第二个字符/。当您发送完整的根元素而不是开始标记时,服务器会断开与您的连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5449780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档