These changes demonstrates a more usable protocol implementation.
1.9 KiB
protocol
The protocol
module can register a new protocol or intercept an existing
protocol, so you can custom the response to the requests for various protocols.
An example of implementing a protocol that has the same effect with the
file://
protocol:
var app = require('app'),
path = require('path');
app.on('will-finish-launching', function() {
var protocol = require('protocol');
protocol.registerProtocol('atom', function(request) {
var url = request.url.substr(7)
return new protocol.RequestFileJob(path.normalize(__dirname + '/' + url));
});
});
Note: This module can only be used after the will-finish-launching
event
was emitted.
protocol.registerProtocol(scheme, handler)
scheme
Stringhandler
Function
Registers a custom protocol of scheme
, the handler
would be called with
handler(request)
when the a request with registered scheme
is made.
You need to return a request job in the handler
to specify which type of
response you would like to send.
protocol.unregisterProtocol(scheme)
scheme
String
Unregisters the custom protocol of scheme
.
protocol.isHandledProtocol(scheme)
scheme
String
Returns whether the scheme
can be handled already.
protocol.interceptProtocol(scheme, handler)
scheme
Stringhandler
Function
Intercepts an existing protocol with scheme
, returning null
or undefined
in handler
would use the original protocol handler to handle the request.
protocol.uninterceptProtocol(scheme)
scheme
String
Unintercepts a protocol.
Class: protocol.RequestFileJob(path)
path
String
Create a request job which would query a file of path
and set corresponding
mime types.
Class: protocol.RequestStringJob(options)
options
ObjectmimeType
String - Default istext/plain
charset
String - Default isUTF-8
data
String
Create a request job which sends a string as response.