我有一个非常具体的问题,但我希望人们可以指出我正确的方向,如何调试甚至修复它。我正在尝试编写一个本地客户端,它可以运行并测试我使用SocketIO构建的网页。
我使用命令行选项--web-security = false运行Phantom,因为否则没有输入或输出连接是合法的,因为我的本地测试人员不被视为与我正在测试的网站相同的来源(必须修复)在听之前会有效。)
使用PhantomJS我无法从SocketIO获取emit函数。它只是无声地失败而没有任何错误。我知道套接字是有效连接的,因为它可以很好地监听传入事件(因此on()方法有效)。我可以在网络浏览器中运行相同的发射代码,它工作得很好。
有没有人知道emit()的替代品,发出的更低级别的东西()调用可能我可以修补,或者我应该如何测试下一步的东西?任何帮助表示赞赏。
答案 0 :(得分:1)
经过大量研究后,看起来这种形式的套接字在phantomjs中尚不支持。当新的2.0发布时,它们应该是,但在那之前其他选项更好。我试图找一个垫片一段时间,但没有成功。
最后,我改为使用node.js来运行主脚本,建立套接字连接,然后使用phantomjs节点模块进行浏览器交互,而不是将脚本作为纯幻像脚本运行。这意味着api交互逻辑被推送到节点应用程序,幻像代码只是与页面交互,但我能够以这种方式实现测试目标,所以我认为它是成功的。