XML 解析错误:“Not well-formed (invalid token)”,f***g/xmpp PHP library package with xmpp openfire
Posted
技术标签:
【中文标题】XML 解析错误:“Not well-formed (invalid token)”,f***g/xmpp PHP library package with xmpp openfire【英文标题】:XML parsing error: "Not well-formed (invalid token)", f***g/xmpp PHP library package with xmpp openfire 【发布时间】:2016-03-22 11:15:50 【问题描述】:我一直试图弄清楚为什么在尝试向我的服务器“发送出席信息”(在同一台机器上本地运行)时出现“XML 解析错误:“格式不正确(无效令牌)”错误),在成功将用户连接到服务器后。
一切都很好,直到我尝试访问客户端对象上的$client->send(new Presence);
方法,例如在他连接之后。这是我在运行$client = new Client($options);
并转储进程中返回的客户端对象后得到的结果。
客户端对象转储
但是,如果我在控制器中运行代码行,例如 $client->send(new Presence);
之后,我会收到这个讨厌的错误
XML 解析错误
我的控制器测试方法中的代码对此非常简单,只需使用 packagist 上 f***g/xmpp 包的文档中的指南。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use F***g\Xmpp\Client;
use F***g\Xmpp\Options;
use F***g\Xmpp\Protocol\Roster;
use F***g\Xmpp\Protocol\Presence;
use F***g\Xmpp\Protocol\Message;
class XmppController extends Controller
public function __construct()
public function test()
$address = "dergree-pc:9090"; // if using HTTP in front, it will give the "cant open stream exception"
$username = "test";
$password = "password";
$options = new Options($address);
$options->setUsername($username)->setPassword($password);
$client = new Client($options);
// ALL THE ABOVE CODE WORKS
$client->send(new Presence); // this or any other line below gives the XML parsing error
// optional connect manually
//$client->connect();
//$client->send(new Roster);
【问题讨论】:
【参考方案1】:您必须先连接到 XMPP 服务器并对其进行身份验证,然后才能发送出席信息。 在您发送出席信息之前,您的测试函数不会调用 connect 方法。
【讨论】:
$client->connect() 只是一种手动连接方式,因为调用new Client($options)
会自动执行此操作:) 我发现了问题...这是由于某些 SSL 证书设置在openfire服务器上。因此,它没有让身份验证通过。我已经禁用了 SSL(因为这是一个测试项目)并启用了 TLS(我认为这就是它的名字)并且它有效 :) 感谢您提供帮助,非常感谢!以上是关于XML 解析错误:“Not well-formed (invalid token)”,f***g/xmpp PHP library package with xmpp openfire的主要内容,如果未能解决你的问题,请参考以下文章
Error:(58) Error parsing XML: not well-formed (invalid token)
Selenium2+Python3.6实战:读取xml文件,获得标签信息ExpatError: not well-formed (invalid token)
Error parsing XML: not well-formed (invalid token) 报错+R文件消失解决的方法
Pointcut is not well-formed: expecting '(' at character position 0 mypt
Pointcut is not well-formed: expecting 'name pattern' at character position
Spring AOP表达式报错:Pointcut is not well-formed: expecting 'name pattern' at character position(