Skip to content
This repository was archived by the owner on Dec 21, 2021. It is now read-only.

Commit 008b7f3

Browse files
author
Eric Andrews
committed
fix compatibility with server
1 parent 3d08d14 commit 008b7f3

File tree

2 files changed

+22
-28
lines changed

2 files changed

+22
-28
lines changed

streamr-client.js

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
(function() {
44

55
var debug
6-
var WebSocket
76
if (typeof window !== 'undefined') {
87
debug = (window.debug ? window.debug('StreamrClient') : function() {
98
if (window.consoleLoggingEnabled)
@@ -12,7 +11,6 @@
1211
}
1312
else {
1413
debug = require('debug')('StreamrClient')
15-
WebSocket = require('ws')
1614
}
1715

1816
var BYE_KEY = "_bye"
@@ -363,33 +361,28 @@
363361
},
364362

365363
decodeMessage: function(type, message) {
366-
if (typeof message === 'string') {
367-
message = JSON.parse(message)
368-
}
369-
370-
// Stream content needs to be decoded further
371364
if (type === 'b' || type === 'u') {
372365
if (this.versionFields[message[0]] === undefined) {
373366
throw "Unsupported version: " + message[0]
374-
} else {
375-
var result = {}
376-
var fields = this.versionFields[message[0]]
377-
var contentType
378-
for (var i = 0; i < message.length; i++) {
379-
380-
// Parse content if necessary
381-
if (fields[i] === 'content') {
382-
if (result.contentType === this.CONTENT_TYPE_JSON) {
383-
message[i] = JSON.parse(message[i])
384-
} else {
385-
throw "Unknown content type: " + result.contentType
386-
}
387-
}
367+
}
368+
var result = {}
369+
var fields = this.versionFields[message[0]]
370+
371+
for (var i = 0; i < message.length; i++) {
372+
373+
// Parse content if necessary
374+
if (fields[i] === 'content') {
375+
if (result.contentType === this.CONTENT_TYPE_JSON) {
388376

389-
result[fields[i]] = message[i]
377+
message[i] = JSON.parse(message[i])
378+
} else {
379+
throw "Unknown content type: " + result.contentType
380+
}
390381
}
391-
return result
382+
383+
result[fields[i]] = message[i]
392384
}
385+
return result
393386
} else {
394387
return message
395388
}
@@ -1042,4 +1035,4 @@
10421035
module.exports = StreamrClient
10431036
else window.StreamrClient = StreamrClient
10441037

1045-
})(typeof(exports) !== 'undefined' ? exports : window)
1038+
})(typeof(exports) !== 'undefined' ? exports : window)

test/test.streamr-client.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe('StreamrClient', function() {
4747

4848
// unicast message to subscription
4949
if (subId != null) {
50-
return JSON.stringify([
50+
return [
5151
28, // version
5252
streamId,
5353
0, // partition
@@ -56,14 +56,14 @@ describe('StreamrClient', function() {
5656
offset,
5757
forcePreviousOffset, // previousOffset
5858
27, // contentType (JSON)
59-
JSON.stringify(content)])
59+
JSON.stringify(content)]
6060
}
6161
// broadcast message to all subscriptions
6262
else {
6363
var previousOffset = forcePreviousOffset || previousOffsetByStreamId[streamId]
6464
previousOffsetByStreamId[streamId] = offset
6565

66-
return JSON.stringify([
66+
return [
6767
28, // version
6868
streamId,
6969
0, // partition
@@ -72,7 +72,7 @@ describe('StreamrClient', function() {
7272
offset,
7373
previousOffset !== offset ? previousOffset : null,
7474
27, // contentType (JSON)
75-
JSON.stringify(content)])
75+
JSON.stringify(content)]
7676
}
7777
}
7878

@@ -160,6 +160,7 @@ describe('StreamrClient', function() {
160160
return socket
161161
});
162162

163+
global.WebSocket = require('ws')
163164
StreamrClient = require('../streamr-client')
164165
})
165166

0 commit comments

Comments
 (0)