package.json
9.0 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
{
"_args": [
[
{
"raw": "engine.io-parser@~2.1.0",
"scope": null,
"escapedName": "engine.io-parser",
"name": "engine.io-parser",
"rawSpec": "~2.1.0",
"spec": ">=2.1.0 <2.2.0",
"type": "range"
},
"/Users/fzy/project/3mang/node_modules/engine.io"
]
],
"_from": "engine.io-parser@>=2.1.0 <2.2.0",
"_id": "engine.io-parser@2.1.1",
"_inCache": true,
"_location": "/engine.io-parser",
"_nodeVersion": "6.9.4",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/engine.io-parser-2.1.1.tgz_1493327149955_0.6413915157318115"
},
"_npmUser": {
"name": "darrachequesne",
"email": "damien.arrachequesne@gmail.com"
},
"_npmVersion": "3.10.10",
"_phantomChildren": {},
"_requested": {
"raw": "engine.io-parser@~2.1.0",
"scope": null,
"escapedName": "engine.io-parser",
"name": "engine.io-parser",
"rawSpec": "~2.1.0",
"spec": ">=2.1.0 <2.2.0",
"type": "range"
},
"_requiredBy": [
"/engine.io",
"/engine.io-client"
],
"_resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.1.tgz",
"_shasum": "e0fb3f0e0462f7f58bb77c1a52e9f5a7e26e4668",
"_shrinkwrap": null,
"_spec": "engine.io-parser@~2.1.0",
"_where": "/Users/fzy/project/3mang/node_modules/engine.io",
"browser": "./lib/browser.js",
"bugs": {
"url": "https://github.com/socketio/engine.io-parser/issues"
},
"dependencies": {
"after": "0.8.2",
"arraybuffer.slice": "0.0.6",
"base64-arraybuffer": "0.1.5",
"blob": "0.0.4",
"has-binary2": "~1.0.2"
},
"description": "Parser for the client for the realtime Engine",
"devDependencies": {
"expect.js": "0.3.1",
"mocha": "3.2.0",
"socket.io-browsers": "^1.0.0",
"zuul": "3.11.1",
"zuul-ngrok": "4.0.0"
},
"directories": {},
"dist": {
"shasum": "e0fb3f0e0462f7f58bb77c1a52e9f5a7e26e4668",
"tarball": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.1.tgz"
},
"files": [
"index.js",
"lib/"
],
"gitHead": "e2422c300e96766c951fdf2432e992c29fc12f1a",
"homepage": "https://github.com/socketio/engine.io-parser",
"license": "MIT",
"maintainers": [
{
"name": "darrachequesne",
"email": "damien.arrachequesne@gmail.com"
},
{
"name": "rauchg",
"email": "rauchg@gmail.com"
}
],
"name": "engine.io-parser",
"optionalDependencies": {},
"readme": "\n# engine.io-parser\n\n[](http://travis-ci.org/socketio/engine.io-parser)\n[](http://badge.fury.io/js/engine.io-parser)\n\nThis is the JavaScript parser for the engine.io protocol encoding,\nshared by both\n[engine.io-client](https://github.com/socketio/engine.io-client) and\n[engine.io](https://github.com/socketio/engine.io).\n\n## How to use\n\n### Standalone\n\nThe parser can encode/decode packets, payloads, and payloads as binary\nwith the following methods: `encodePacket`, `decodePacket`, `encodePayload`,\n`decodePayload`, `encodePayloadAsBinary`, `decodePayloadAsBinary`.\n\nThe browser-side parser also includes `encodePayloadAsArrayBuffer` and `encodePayloadAsBlob`.\n\nExample:\n\n```js\nvar parser = require('engine.io-parser');\n\nvar data = new Buffer(5);\nfor (var i = 0; i < data.length; i++) { data[i] = i; }\n\nparser.encodePacket({ type: 'message', data: data }, function(encoded) {\n var decodedData = parser.decodePacket(encoded); // { type: 'message', data: data }\n});\n```\n\n### With browserify\n\nEngine.IO Parser is a commonjs module, which means you can include it by using\n`require` on the browser and package using [browserify](http://browserify.org/):\n\n1. install the parser package\n\n ```shell\n npm install engine.io-parser\n ```\n\n1. write your app code\n\n ```js\n var parser = require('engine.io-parser');\n\n var testBuffer = new Int8Array(10);\n for (var i = 0; i < testBuffer.length; i++) testBuffer[i] = i;\n\n var packets = [{ type: 'message', data: testBuffer.buffer }, { type: 'message', data: 'hello' }];\n\n parser.encodePayload(packets, function(encoded) {\n parser.decodePayload(encoded,\n function(packet, index, total) {\n var isLast = index + 1 == total;\n if (!isLast) {\n var buffer = new Int8Array(packet.data); // testBuffer\n } else {\n var message = packet.data; // 'hello'\n }\n });\n });\n ```\n\n1. build your app bundle\n\n ```bash\n $ browserify app.js > bundle.js\n ```\n\n1. include on your page\n\n ```html\n <script src=\"/path/to/bundle.js\"></script>\n ```\n\n## Features\n\n- Runs on browser and node.js seamlessly\n- Runs inside HTML5 WebWorker\n- Can encode and decode packets\n - Encodes from/to ArrayBuffer or Blob when in browser, and Buffer or ArrayBuffer in Node\n\n## API\n\nNote: `cb(type)` means the type is a callback function that contains a parameter of type `type` when called.\n\n### Node\n\n- `encodePacket`\n - Encodes a packet.\n - **Parameters**\n - `Object`: the packet to encode, has `type` and `data`.\n - `data`: can be a `String`, `Number`, `Buffer`, `ArrayBuffer`\n - `Boolean`: optional, binary support\n - `Function`: callback, returns the encoded packet (`cb(String)`)\n- `decodePacket`\n - Decodes a packet. Data also available as an ArrayBuffer if requested.\n - Returns data as `String` or (`Blob` on browser, `ArrayBuffer` on Node)\n - **Parameters**\n - `String` | `ArrayBuffer`: the packet to decode, has `type` and `data`\n - `String`: optional, the binary type\n\n- `encodeBase64Packet`\n - Encodes a packet with binary data in a base64 string (`String`)\n - **Parameters**\n - `Object`: the packet to encode, has `type` and `data`\n - `Function`: callback, returns the base64 encoded message (`cb(String)`)\n- `decodeBase64Packet`\n - Decodes a packet encoded in a base64 string.\n - **Parameters**\n - `String`: the base64 encoded message\n - `String`: optional, the binary type\n\n- `encodePayload`\n - Encodes multiple messages (payload).\n - If any contents are binary, they will be encoded as base64 strings. Base64\n encoded strings are marked with a b before the length specifier\n - **Parameters**\n - `Array`: an array of packets\n - `Boolean`: optional, binary support\n - `Function`: callback, returns the encoded payload (`cb(String)`)\n- `decodePayload`\n - Decodes data when a payload is maybe expected. Possible binary contents are\n decoded from their base64 representation.\n - **Parameters**\n - `String`: the payload\n - `String`: optional, the binary type\n - `Function`: callback, returns (cb(`Object`: packet, `Number`:packet index, `Number`:packet total))\n\n- `encodePayloadAsBinary`\n - Encodes multiple messages (payload) as binary.\n - **Parameters**\n - `Array`: an array of packets\n - `Function`: callback, returns the encoded payload (`cb(Buffer)`)\n- `decodePayloadAsBinary`\n - Decodes data when a payload is maybe expected. Strings are decoded by\n interpreting each byte as a key code for entries marked to start with 0. See\n description of encodePayloadAsBinary.\n - **Parameters**\n - `Buffer`: the buffer\n - `String`: optional, the binary type\n - `Function`: callback, returns the decoded packet (`cb(Object)`)\n\n### Browser\n\n- `encodePayloadAsArrayBuffer`\n - Encodes multiple messages (payload) as binary.\n - **Parameters**\n - `Array`: an array of packets\n - `Function`: callback, returns the encoded payload (`cb(ArrayBuffer)`)\n- `encodePayloadAsBlob`\n - Encodes multiple messages (payload) as blob.\n - **Parameters**\n - `Array`: an array of packets\n - `Function`: callback, returns the encoded payload (`cb(Blob)`)\n\n## Tests\n\nStandalone tests can be run with `make test` which will run both node.js and browser tests.\n\nBrowser tests are run using [zuul](https://github.com/defunctzombie/zuul).\n(You must have zuul setup with a saucelabs account.)\n\nYou can run the tests locally using the following command:\n\n```\n./node_modules/.bin/zuul --local 8080 -- test/index.js\n```\n\n## Support\n\nThe support channels for `engine.io-parser` are the same as `socket.io`:\n - irc.freenode.net **#socket.io**\n - [Google Groups](http://groups.google.com/group/socket_io)\n - [Website](http://socket.io)\n\n## Development\n\nTo contribute patches, run tests or benchmarks, make sure to clone the\nrepository:\n\n```bash\ngit clone git://github.com/LearnBoost/engine.io-parser.git\n```\n\nThen:\n\n```bash\ncd engine.io-parser\nnpm install\n```\n\nSee the `Tests` section above for how to run tests before submitting any patches.\n\n## License\n\nMIT\n",
"readmeFilename": "Readme.md",
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/socketio/engine.io-parser.git"
},
"scripts": {
"test": "make test"
},
"version": "2.1.1"
}