如何使用Javascript通过Firefox XPCOM获取可靠的HTTP消息
时间:2020-03-05 18:56:07 来源:igfitidea点击:
我正在尝试使用XPCOM在Firefox上使用Javascript编程小型服务器+客户端。
为了使用Javascript获得HTTP消息,我正在使用nsIScriptableInputStream接口。
这个通过read()方法创建的组件随机剪切了消息,我无法使其可靠。
有人知道一种可靠获取信息的解决方案吗? (我已经尝试过二进制流,同样失败。)
J.
解决方案
回答
如果我们控制协议(即客户端和服务器),则强烈建议对服务器到客户端消息使用Javascript / JSON。客户端可以通过向DOM动态添加<script>标记来打开流。然后,服务器可以发送Javascript命令流,例如:
receiveMsg({type:"text", content:"this is my message"});
然后,客户端只需要定义一个receiveMsg函数。这使我们可以依靠快速的浏览器代码来解析消息并确定每条消息的末尾,这时它将为我们调用处理程序。
即使我们正在使用现有的HTTP协议并且不能使用JSON,还是有某些原因不能使用XMLHttpRequest?我希望它比某些文献记载不完整的Firefox XPCOM界面更稳定。
-克雷尔
回答
我在可靠性方面也遇到了同样的问题...我最终使用了XMLHTTPRequest,当从XPCOM组件中使用XMLHTTPRequest时,它可以执行跨站点请求。文档的第二部分详细介绍了如何实例化XPCOM版本。
如果我们要处理HTTP请求,那么我将看一下POW源代码和服务器套接字的使用,它们在JavaScript中实现了基本的HTTP服务器。还要查看httpd.js