Skip to content

Commit 8e73bf5

Browse files
fix: better buffer handling
1 parent 3d2b53b commit 8e73bf5

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

.travis.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ node_js:
55
- 4
66
- 5
77
- 6
8+
- 8
89

910
before_script:
1011
- export DISPLAY=:99.0
@@ -13,6 +14,3 @@ before_script:
1314
notifications:
1415
email:
1516
16-
17-
18-

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"homepage": "https://github.com/DamonOehlman/pull-ws",
2626
"dependencies": {
2727
"relative-url": "^1.0.2",
28+
"safe-buffer": "^5.1.1",
2829
"ws": "^1.1.0"
2930
},
3031
"devDependencies": {

source.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@
66
<<< examples/read.js
77
88
**/
9+
var Buffer = require('safe-buffer').Buffer;
10+
11+
// copied from github.com/feross/buffer
12+
// Some ArrayBuffers are not passing the instanceof check, so we need to do a bit more work :(
13+
function isArrayBuffer (obj) {
14+
return obj instanceof ArrayBuffer ||
15+
(obj != null && obj.constructor != null && obj.constructor.name === 'ArrayBuffer' &&
16+
typeof obj.byteLength === 'number')
17+
}
918

1019
module.exports = function(socket, cb) {
1120
var buffer = [];
@@ -14,9 +23,8 @@ module.exports = function(socket, cb) {
1423
var started = false;
1524
socket.addEventListener('message', function(evt) {
1625
var data = evt.data;
17-
18-
if (data instanceof ArrayBuffer) {
19-
data = new Buffer(data);
26+
if (isArrayBuffer(data)) {
27+
data = Buffer.from(data);
2028
}
2129

2230
if (receiver) {

0 commit comments

Comments
 (0)