我正在尝试使用 Firefox 来读取 SSH 横幅。 IE。当您最初连接到 SSH 服务器时,服务器会向您发送其横幅,标识服务器软件,并且您向 SSH 服务器发送您的横幅,标识您的客户端软件。
为此,我使用以下 URL 中的示例:
firefox扩展javascript中有nsiClientSocket吗? https://stackoverflow.com/questions/7850258/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!");
};
IE。我将 Components 组件(小写)和 Components.interfaces 只是接口。但后来我在控制台上收到此错误:
var transport = components.classes["@mozilla.org/network/socket-transport-service;1"]
ReferenceError: components is not defined
有任何想法吗?