Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
brow-client
Advanced tools
This is a browserver client, for the browser.
browserver-client exposes the important bits of the node.js http API in the browser, allowing it to receive incoming HTTP requests and make outgoing HTTP requests via WebSockets.
This library, along with browserver-node, is all the code you need to set up your own browserver.
In index.html
:
<!doctype html>
<html>
<head>
<title>My Browserver App</title>
<script src="/path/to/websocket-shim"></script>
<script src="/path/to/browserver"></script>
<script src="/app.js"></script>
</head>
</html>
In app.js
:
// to handle incoming HTTP requests,
// use the standard node.js http.Server API
var server = http.createServer(function(req, res) {
if (req.method != "GET") {
res.writeHead(405, {"Content-Type": "text/plain"})
return res.end("Method not allowed")
}
var pathname = req.url.split("?")[0]
if (pathname != "/hello") {
res.writeHead(404, {"Content-Type": "text/plain"})
return res.end("Not found.")
}
res.writeHead(200, {"Content-Type": "text/plain"})
res.end("Hello, world!")
})
// establish a WebSocket (or compatible) connection,
// in this case using engine.io
var ws = new eio.Socket({host: "myserver.com"})
// bind the browserver HTTP server to the WebSocket
// and wait for connections from the browserver proxy!
server.listen(ws)
// to make outgoing HTTP requests w/o cross-domain issues,
// use http.get or http.request
http.get("http://www.google.com/index.html", function(res) {
console.log("Google answered back!")
})
The browserver-client API is basically a port of the node.js http API, with a few caveats:
Streaming is not supported. This means a ServerRequest
or ClientResponse
will only emit one data
event, and that multiple calls to the write
method of a ServerResponse
or ClientRequest
will be buffered locally and sent when end
is called. The data
events are provided for compatibility, but aren't technically needed, since the body itself is stored on the body
property of the ServerRequest
or ClientResponse
.
The aspects of the node.js implementation that don't map well to the browser (such as writeContinue
and addTrailers
methods, and client agents) have been omitted.
Otherwise, if there is a method or behavior that differs from what you'd expect on node.js, please file an issue.
addEventListener
events.FAQs
෴ A node.js HTTP server in your browser ෴
We found that brow-client demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.