javascript – 使用Firefox插件sdk的nsISocketTransportService
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用Firefox插件sdk的nsISocketTransportService,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2450字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 使用Firefox插件sdk的nsISocketTransportService](/upload/InfoBanner/zyjiaocheng/762/d1ec181a40ae481fbd46390994f26a5f.jpg)
我正在尝试使用Firefox来阅读SSH横幅.即.当您最初连接到SSH服务器时,服务器会向您发送其横幅,标识服务器软件,然后向您的SSH服务器发送横幅,标识您的客户端软件.
为此,我在此URL使用示例:
Is there nsiClientSocket in firefox extension javascript?
这是我的代码:
'use strict';
const {Cc,Ci} = require("chrome")
const prefs = require("simple-prefs");
exports.main = function(options,callbacks) {
var transport = Components.classes["@mozilla.org/network/socket-transport-service;1"]
.getService(Components.interfaces.nsISocketTransportService)
.createTransport(null, 0, "localhost", 22, null);
//var output = transport.openOutputStream(0, 0, 0);
var input = transport.openInputStream(0, 0, 0);
var data = "test";
dump(stream.read());
//stream.write(data, data.length);
//stream.close();
dump("all done!");
};
当我使用cfx xpi时,我得到了这个:
The following lines from file C:\path\to\lib\main.js:
8: var transport = Components.classes["@mozilla.org/network/socket-transport-service;1"]
9: .getService(Components.interfaces.nsISocketTransportService) use 'Components' to access chrome authority. To do so, you need to add a line somewhat like the following:
const {Cc,Ci} = require("chrome");
Then you can use any shortcuts to its properties that you import from the 'chrome' module ('Cc', 'Ci', 'Cm', 'Cr', and 'Cu' for the 'classes', 'interfaces', 'manager', 'results', and 'utils' properties, respectively. And `components` for `Components` object itself).
所以我试着这样做:
'use strict';
const {Cc,Ci} = require("chrome")
const prefs = require("simple-prefs");
exports.main = function(options,callbacks) {
var transport = components.classes["@mozilla.org/network/socket-transport-service;1"]
.getService(interfaces.nsISocketTransportService)
.createTransport(null, 0, "localhost", 22, null);
//var output = transport.openOutputStream(0, 0, 0);
var input = transport.openInputStream(0, 0, 0);
var data = "test";
dump(stream.read());
//stream.write(data, data.length);
//stream.close();
dump("all done!");
};
即.我使用Components组件(小写)和Components.interfaces只是接口.但后来我在控制台上出现了这个错误:
var transport = components.classes["@mozilla.org/network/socket-transport-service;1"]
ReferenceError: components is not defined
有任何想法吗?
解决方法:
您应该使用Cc而不是Components.classes和Ci而不是Components.interfaces – 这些是您从chrome模块导入的变量,它们是定义的.如果您需要使用Components对象本身(不太可能),您也可以导入它:
const {components, Cc, Ci} = require("chrome");
供参考:chrome authority
内容总结
以上是互联网集市为您收集整理的javascript – 使用Firefox插件sdk的nsISocketTransportService全部内容,希望文章能够帮你解决javascript – 使用Firefox插件sdk的nsISocketTransportService所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。