1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 const EventEmitter
= require("resource://devtools/shared/event-emitter.js");
9 function WebSocketDebuggerTransport(socket
) {
10 EventEmitter
.decorate(this);
17 WebSocketDebuggerTransport
.prototype = {
23 this.socket
.addEventListener("message", this);
24 this.socket
.addEventListener("close", this);
30 this.emit("send", object
);
32 this.socket
.send(JSON
.stringify(object
));
37 throw new Error("Bulk send is not supported by WebSocket transport");
47 this.socket
.removeEventListener("message", this);
48 this.socket
.removeEventListener("close", this);
53 if (this.hooks
.onTransportClosed
) {
54 this.hooks
.onTransportClosed();
63 this.onMessage(event
);
72 if (typeof data
!== "string") {
74 "Binary messages are not supported by WebSocket transport"
78 const object
= JSON
.parse(data
);
79 this.emit("packet", object
);
81 this.hooks
.onPacket(object
);
86 module
.exports
= WebSocketDebuggerTransport
;