【问题标题】:SocketIO + PhantomJS emit not workingSocketIO + PhantomJS 发出不工作
【发布时间】:2014-09-23 06:55:48
【问题描述】:

我遇到了一个非常具体的问题,但我希望人们可以为我指出正确的方向,以了解如何调试甚至修复它。我正在尝试编写一个本地客户端,它可以运行和测试我使用 SocketIO 构建的网页。

我正在使用命令行选项--web-security=false 运行 Phantom,因为否则没有输入或输出连接是合法的,因为我的本地测试仪不被视为与我正在测试的网站同源的一部分(必须修复在听之前的工作)。

使用 PhantomJS 我无法从 SocketIO 获取发射功能。它只是默默地失败,没有任何错误。我知道套接字已有效连接,因为它可以很好地监听传入事件(因此 on() 方法有效)。我可以在网络浏览器中运行相同的发射代码,它工作得很好。

有谁知道 emit() 的替代方法,emit() 调用了哪些较低级别的东西,也许我可以修补,或者我接下来应该如何测试?任何帮助表示赞赏。

【问题讨论】:

标签: javascript socket.io phantomjs casperjs


【解决方案1】:

经过大量研究,phantomjs 似乎还不支持这种形式的套接字。当新的 2.0 发布时,它们应该是,但在那之前,其他选项会更好。我试图找到一个垫片,但没有成功。

最后,我改为使用 node.js 运行主脚本,建立套接字连接,然后使用 phantomjs 节点模块进行浏览器交互,而不是将脚本作为纯幻像脚本运行。这意味着 api 交互逻辑被推送到节点应用程序,而幻像代码只是与页面交互,但我能够通过这种方式实现测试目标,所以我认为它是成功的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 1970-01-01
    • 2018-07-02
    • 2015-12-06
    • 1970-01-01
    相关资源
    最近更新 更多