64 lines
6.7 KiB
JSON
64 lines
6.7 KiB
JSON
|
{
|
||
|
"author": {
|
||
|
"name": "Einar Otto Stangvik",
|
||
|
"email": "einaros@gmail.com",
|
||
|
"url": "http://2x.io"
|
||
|
},
|
||
|
"name": "ws",
|
||
|
"description": "simple to use, blazing fast and thoroughly tested websocket client, server and console for node.js, up-to-date against RFC-6455",
|
||
|
"version": "0.7.1",
|
||
|
"license": "MIT",
|
||
|
"keywords": [
|
||
|
"Hixie",
|
||
|
"HyBi",
|
||
|
"Push",
|
||
|
"RFC-6455",
|
||
|
"WebSocket",
|
||
|
"WebSockets",
|
||
|
"real-time"
|
||
|
],
|
||
|
"repository": {
|
||
|
"type": "git",
|
||
|
"url": "git://github.com/websockets/ws.git"
|
||
|
},
|
||
|
"scripts": {
|
||
|
"test": "make test"
|
||
|
},
|
||
|
"dependencies": {
|
||
|
"options": ">=0.0.5",
|
||
|
"ultron": "1.0.x",
|
||
|
"bufferutil": "1.0.x",
|
||
|
"utf-8-validate": "1.0.x"
|
||
|
},
|
||
|
"optionalDependencies": {
|
||
|
"bufferutil": "1.0.x",
|
||
|
"utf-8-validate": "1.0.x"
|
||
|
},
|
||
|
"devDependencies": {
|
||
|
"ansi": "0.3.x",
|
||
|
"benchmark": "0.3.x",
|
||
|
"expect.js": "0.3.x",
|
||
|
"mocha": "2.0.x",
|
||
|
"should": "4.3.x",
|
||
|
"tinycolor": "0.0.x"
|
||
|
},
|
||
|
"browser": "./lib/browser.js",
|
||
|
"component": {
|
||
|
"scripts": {
|
||
|
"ws/index.js": "./lib/browser.js"
|
||
|
}
|
||
|
},
|
||
|
"gypfile": true,
|
||
|
"readme": "# ws: a node.js websocket library\n\n[![Build Status](https://travis-ci.org/einaros/ws.svg?branch=master)](https://travis-ci.org/einaros/ws)\n\n`ws` is a simple to use WebSocket implementation, up-to-date against RFC-6455,\nand [probably the fastest WebSocket library for node.js][archive].\n\nPasses the quite extensive Autobahn test suite. See http://einaros.github.com/ws\nfor the full reports.\n\n## Protocol support\n\n* **Hixie draft 76** (Old and deprecated, but still in use by Safari and Opera.\n Added to ws version 0.4.2, but server only. Can be disabled by setting the\n `disableHixie` option to true.)\n* **HyBi drafts 07-12** (Use the option `protocolVersion: 8`)\n* **HyBi drafts 13-17** (Current default, alternatively option `protocolVersion: 13`)\n\n### Installing\n\n```\nnpm install --save ws\n```\n\n### Sending and receiving text data\n\n```js\nvar WebSocket = require('ws');\nvar ws = new WebSocket('ws://www.host.com/path');\n\nws.on('open', function open() {\n ws.send('something');\n});\n\nws.on('message', function(data, flags) {\n // flags.binary will be set if a binary data is received.\n // flags.masked will be set if the data was masked.\n});\n```\n\n### Sending binary data\n\n```js\nvar WebSocket = require('ws');\nvar ws = new WebSocket('ws://www.host.com/path');\n\nws.on('open', function open() {\n var array = new Float32Array(5);\n\n for (var i = 0; i < array.length; ++i) {\n array[i] = i / 2;\n }\n\n ws.send(array, { binary: true, mask: true });\n});\n```\n\nSetting `mask`, as done for the send options above, will cause the data to be\nmasked according to the WebSocket protocol. The same option applies for text\ndata.\n\n### Server example\n\n```js\nvar WebSocketServer = require('ws').Server\n , wss = new WebSocketServer({ port: 8080 });\n\nwss.on('connection', function connection(ws) {\n ws.on('message', function incoming(message) {\n console.log('received: %s', message);\n });\n\n ws.send('something');\n});\n```\n\n### Server sending broadcast data\n\n```js\nvar WebSocketServer = require('ws').Server\n , wss = new WebSocketServer({ port: 8080 });\n\nwss.broadcast = function broadcast(data) {\n wss.clients.forEach(function each(client) {\n client.send(data);\n });\n};\n```\n\n### Error handling best practices\n\n```js\n// If the WebSocket is closed before the following send is attempted\nws.send('something');\n\n// Errors (both immediate and async write errors) can be detected in an optional\n// callback. The callback is also the only way of being notified that data has\n// actually been sent.\nws.send('something', function ack(error) {\n // if error is not defined, the send has been completed,\n // otherwise the error object will indicate what failed.\n});\n\n// Immediate errors can also be handled with try/catch-blocks, but **note** that\n// since sends are inherently asynchronous, socket write failures will *not* be\n// captured when this technique is used.\ntry { ws.send('something'); }\ncatch (e) { /* handle error */ }\n```\n\n### echo.websocket.org demo\n\n```js\nvar WebSocket = require('ws');\nvar ws = new WebSocket('ws://echo.websocket.org/', {\n protocolVersion: 8, \n origin: 'http://websocket.org'\n});\n\nws.on('open', function open() {\n console.log('connected');\n ws.send(Date.now().toString(), {mask: true});\n});\n\nws.on('close', function close() {\n console.log('disconnected');\n});\n\nws.on('message', function message(data, flags) {\n console.log('Roundtrip time: ' + (Date.now() - parseInt(data)) + 'ms', flags);\n\n setTimeout(function timeout() {\n ws.send(Date.now().toString(), {mask: true});\n }, 500);\n});\n```\n\n### Other examples\n\nFor a full example with a browser client communicating with a ws server, see the\nexamples folder.\n\nNote that the usage together with Express 3.0 is quite different from Express\n2.x. The difference is expressed in the two different serverstats-examples.\n\nOtherwise, see the test cases.\n\n### Running the tests\n\n```\nmake test\n```\n\n## API Docs\n\nSee the doc/ directory for Node.js-like docs
|
||
|
"readmeFilename": "README.md",
|
||
|
"bugs": {
|
||
|
"url": "https://github.com/websockets/ws/issues"
|
||
|
},
|
||
|
"_id": "ws@0.7.1",
|
||
|
"dist": {
|
||
|
"shasum": "ee0e238c89e363446ec22c6d9d8e72283e68a364"
|
||
|
},
|
||
|
"_from": "ws@0.7.1",
|
||
|
"_resolved": "https://registry.npmjs.org/ws/-/ws-0.7.1.tgz"
|
||
|
}
|