2014-09-01 54 views
1

我有一个非常具体的问题,但我希望人们可以指出我如何调试或修复它的正确方向。我正在尝试编写一个本地客户端,它可以运行并测试我使用SocketIO构建的网页。SocketIO + PhantomJS发出不工作

我正在使用命令行选项运行Phantom --web-security = false,否则没有进出连接是合法的,因为我的本地测试程序不被认为是与我的网站相同的源的一部分我正在测试(必须在听力工作之前解决这个问题)。

使用PhantomJS我无法从SocketIO中使用emit函数来工作。它只是失败而没有任何错误。我知道套接字是有效连接的,因为它可以监听传入的事件,所以on()方法工作)。我可以在Web浏览器中运行相同的发光代码,并且工作得很好。有没有人知道排放()的替代品,什么更低级别的东西发出()调用,也许我可以补丁,或者我应该如何测试下一步?任何帮助表示赞赏。

+0

相关:http://stackoverflow.com/q/15725236/1816580 github上有PhantomJS 2的生命体征。 – 2014-09-02 08:08:35

+0

现在还发现这个,回到这里分享链接为谷歌同仁:) https://github.com/socketio/socket.io/issues/1746 – superhero 2015-11-23 23:53:15

回答

1

经过大量研究,它看起来像这种形式的套接字根本不支持phantomjs。当新的2.0版本应该是,但在那之前其他选择更好。我试图找一段时间的垫片,但没有成功。

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