Skip to content

Instantly share code, notes, and snippets.

@darkl
Last active October 16, 2019 18:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save darkl/d761ab0e680b9722cb2c to your computer and use it in GitHub Desktop.
Save darkl/d761ab0e680b9722cb2c to your computer and use it in GitHub Desktop.
var WampMessageType;
(function (WampMessageType) {
WampMessageType[WampMessageType["Hello"] = 1] = "Hello";
WampMessageType[WampMessageType["Welcome"] = 2] = "Welcome";
WampMessageType[WampMessageType["Abort"] = 3] = "Abort";
WampMessageType[WampMessageType["Challenge"] = 4] = "Challenge";
WampMessageType[WampMessageType["Authenticate"] = 5] = "Authenticate";
WampMessageType[WampMessageType["Goodbye"] = 6] = "Goodbye";
WampMessageType[WampMessageType["Error"] = 8] = "Error";
WampMessageType[WampMessageType["Publish"] = 16] = "Publish";
WampMessageType[WampMessageType["Published"] = 17] = "Published";
WampMessageType[WampMessageType["Subscribe"] = 32] = "Subscribe";
WampMessageType[WampMessageType["Subscribed"] = 33] = "Subscribed";
WampMessageType[WampMessageType["Unsubscribe"] = 34] = "Unsubscribe";
WampMessageType[WampMessageType["Unsubscribed"] = 35] = "Unsubscribed";
WampMessageType[WampMessageType["Event"] = 36] = "Event";
WampMessageType[WampMessageType["Call"] = 48] = "Call";
WampMessageType[WampMessageType["Cancel"] = 49] = "Cancel";
WampMessageType[WampMessageType["Result"] = 50] = "Result";
WampMessageType[WampMessageType["Register"] = 64] = "Register";
WampMessageType[WampMessageType["Registered"] = 65] = "Registered";
WampMessageType[WampMessageType["Unregister"] = 66] = "Unregister";
WampMessageType[WampMessageType["Unregistered"] = 67] = "Unregistered";
WampMessageType[WampMessageType["Invocation"] = 68] = "Invocation";
WampMessageType[WampMessageType["Interrupt"] = 69] = "Interrupt";
WampMessageType[WampMessageType["Yield"] = 70] = "Yield";
})(WampMessageType || (WampMessageType = {}));
function parseWampMessage(message) {
var messageArray = JSON.parse(message);
var messageType = messageArray[0], arguments = messageArray.slice(1);
switch (messageType) {
case WampMessageType.Hello:
return new HelloMessage(arguments);
case WampMessageType.Welcome:
return new WelcomeMessage(arguments);
case WampMessageType.Abort:
return new AbortMessage(arguments);
case WampMessageType.Challenge:
return new ChallengeMessage(arguments);
case WampMessageType.Authenticate:
return new AuthenticateMessage(arguments);
case WampMessageType.Goodbye:
return new GoodbyeMessage(arguments);
case WampMessageType.Error:
return new ErrorMessage(arguments);
case WampMessageType.Publish:
return new PublishMessage(arguments);
case WampMessageType.Published:
return new PublishedMessage(arguments);
case WampMessageType.Subscribe:
return new SubscribeMessage(arguments);
case WampMessageType.Subscribed:
return new SubscribedMessage(arguments);
case WampMessageType.Unsubscribe:
return new UnsubscribeMessage(arguments);
case WampMessageType.Unsubscribed:
return new UnsubscribedMessage(arguments);
case WampMessageType.Event:
return new EventMessage(arguments);
case WampMessageType.Call:
return new CallMessage(arguments);
case WampMessageType.Cancel:
return new CancelMessage(arguments);
case WampMessageType.Result:
return new ResultMessage(arguments);
case WampMessageType.Register:
return new RegisterMessage(arguments);
case WampMessageType.Registered:
return new RegisteredMessage(arguments);
case WampMessageType.Unregister:
return new UnregisterMessage(arguments);
case WampMessageType.Unregistered:
return new UnregisteredMessage(arguments);
case WampMessageType.Invocation:
return new InvocationMessage(arguments);
case WampMessageType.Interrupt:
return new InterruptMessage(arguments);
case WampMessageType.Yield:
return new YieldMessage(arguments);
default:
return null;
}
}
var HelloMessage = (function () {
function HelloMessage(messageArguments) {
this._realm = messageArguments[0], this._details = messageArguments[1];
}
Object.defineProperty(HelloMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Hello; },
enumerable: true,
configurable: true
});
Object.defineProperty(HelloMessage.prototype, "messageName", {
get: function () { return "HELLO"; },
enumerable: true,
configurable: true
});
Object.defineProperty(HelloMessage.prototype, "realm", {
get: function () { return this._realm; },
enumerable: true,
configurable: true
});
Object.defineProperty(HelloMessage.prototype, "details", {
get: function () { return this._details; },
enumerable: true,
configurable: true
});
return HelloMessage;
})();
var WelcomeMessage = (function () {
function WelcomeMessage(messageArguments) {
this._session = messageArguments[0], this._details = messageArguments[1];
}
Object.defineProperty(WelcomeMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Welcome; },
enumerable: true,
configurable: true
});
Object.defineProperty(WelcomeMessage.prototype, "messageName", {
get: function () { return "WELCOME"; },
enumerable: true,
configurable: true
});
Object.defineProperty(WelcomeMessage.prototype, "session", {
get: function () { return this._session; },
enumerable: true,
configurable: true
});
Object.defineProperty(WelcomeMessage.prototype, "details", {
get: function () { return this._details; },
enumerable: true,
configurable: true
});
return WelcomeMessage;
})();
var AbortMessage = (function () {
function AbortMessage(messageArguments) {
this._details = messageArguments[0], this._reason = messageArguments[1];
}
Object.defineProperty(AbortMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Abort; },
enumerable: true,
configurable: true
});
Object.defineProperty(AbortMessage.prototype, "messageName", {
get: function () { return "ABORT"; },
enumerable: true,
configurable: true
});
Object.defineProperty(AbortMessage.prototype, "details", {
get: function () { return this._details; },
enumerable: true,
configurable: true
});
Object.defineProperty(AbortMessage.prototype, "reason", {
get: function () { return this._reason; },
enumerable: true,
configurable: true
});
return AbortMessage;
})();
var ChallengeMessage = (function () {
function ChallengeMessage(messageArguments) {
this._authMethod = messageArguments[0], this._extra = messageArguments[1];
}
Object.defineProperty(ChallengeMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Challenge; },
enumerable: true,
configurable: true
});
Object.defineProperty(ChallengeMessage.prototype, "messageName", {
get: function () { return "CHALLENGE"; },
enumerable: true,
configurable: true
});
Object.defineProperty(ChallengeMessage.prototype, "authMethod", {
get: function () { return this._authMethod; },
enumerable: true,
configurable: true
});
Object.defineProperty(ChallengeMessage.prototype, "extra", {
get: function () { return this._extra; },
enumerable: true,
configurable: true
});
return ChallengeMessage;
})();
var AuthenticateMessage = (function () {
function AuthenticateMessage(messageArguments) {
this._signature = messageArguments[0], this._extra = messageArguments[1];
}
Object.defineProperty(AuthenticateMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Authenticate; },
enumerable: true,
configurable: true
});
Object.defineProperty(AuthenticateMessage.prototype, "messageName", {
get: function () { return "AUTHENTICATE"; },
enumerable: true,
configurable: true
});
Object.defineProperty(AuthenticateMessage.prototype, "signature", {
get: function () { return this._signature; },
enumerable: true,
configurable: true
});
Object.defineProperty(AuthenticateMessage.prototype, "extra", {
get: function () { return this._extra; },
enumerable: true,
configurable: true
});
return AuthenticateMessage;
})();
var GoodbyeMessage = (function () {
function GoodbyeMessage(messageArguments) {
this._details = messageArguments[0], this._reason = messageArguments[1];
}
Object.defineProperty(GoodbyeMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Goodbye; },
enumerable: true,
configurable: true
});
Object.defineProperty(GoodbyeMessage.prototype, "messageName", {
get: function () { return "GOODBYE"; },
enumerable: true,
configurable: true
});
Object.defineProperty(GoodbyeMessage.prototype, "details", {
get: function () { return this._details; },
enumerable: true,
configurable: true
});
Object.defineProperty(GoodbyeMessage.prototype, "reason", {
get: function () { return this._reason; },
enumerable: true,
configurable: true
});
return GoodbyeMessage;
})();
var ErrorMessage = (function () {
function ErrorMessage(messageArguments) {
this._type = messageArguments[0], this._request = messageArguments[1], this._details = messageArguments[2], this._error = messageArguments[3], this._arguments = messageArguments[4], this._argumentsKw = messageArguments[5];
}
Object.defineProperty(ErrorMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Error; },
enumerable: true,
configurable: true
});
Object.defineProperty(ErrorMessage.prototype, "messageName", {
get: function () { return "ERROR"; },
enumerable: true,
configurable: true
});
Object.defineProperty(ErrorMessage.prototype, "type", {
get: function () { return this._type; },
enumerable: true,
configurable: true
});
Object.defineProperty(ErrorMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(ErrorMessage.prototype, "details", {
get: function () { return this._details; },
enumerable: true,
configurable: true
});
Object.defineProperty(ErrorMessage.prototype, "error", {
get: function () { return this._error; },
enumerable: true,
configurable: true
});
Object.defineProperty(ErrorMessage.prototype, "arguments", {
get: function () { return this._arguments; },
enumerable: true,
configurable: true
});
Object.defineProperty(ErrorMessage.prototype, "argumentsKw", {
get: function () { return this._argumentsKw; },
enumerable: true,
configurable: true
});
return ErrorMessage;
})();
var PublishMessage = (function () {
function PublishMessage(messageArguments) {
this._request = messageArguments[0], this._options = messageArguments[1], this._topic = messageArguments[2], this._arguments = messageArguments[3], this._argumentsKw = messageArguments[4];
}
Object.defineProperty(PublishMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Publish; },
enumerable: true,
configurable: true
});
Object.defineProperty(PublishMessage.prototype, "messageName", {
get: function () { return "PUBLISH"; },
enumerable: true,
configurable: true
});
Object.defineProperty(PublishMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(PublishMessage.prototype, "options", {
get: function () { return this._options; },
enumerable: true,
configurable: true
});
Object.defineProperty(PublishMessage.prototype, "topic", {
get: function () { return this._topic; },
enumerable: true,
configurable: true
});
Object.defineProperty(PublishMessage.prototype, "arguments", {
get: function () { return this._arguments; },
enumerable: true,
configurable: true
});
Object.defineProperty(PublishMessage.prototype, "argumentsKw", {
get: function () { return this._argumentsKw; },
enumerable: true,
configurable: true
});
return PublishMessage;
})();
var PublishedMessage = (function () {
function PublishedMessage(messageArguments) {
this._request = messageArguments[0], this._publication = messageArguments[1];
}
Object.defineProperty(PublishedMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Published; },
enumerable: true,
configurable: true
});
Object.defineProperty(PublishedMessage.prototype, "messageName", {
get: function () { return "PUBLISHED"; },
enumerable: true,
configurable: true
});
Object.defineProperty(PublishedMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(PublishedMessage.prototype, "publication", {
get: function () { return this._publication; },
enumerable: true,
configurable: true
});
return PublishedMessage;
})();
var SubscribeMessage = (function () {
function SubscribeMessage(messageArguments) {
this._request = messageArguments[0], this._options = messageArguments[1], this._topic = messageArguments[2];
}
Object.defineProperty(SubscribeMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Subscribe; },
enumerable: true,
configurable: true
});
Object.defineProperty(SubscribeMessage.prototype, "messageName", {
get: function () { return "SUBSCRIBE"; },
enumerable: true,
configurable: true
});
Object.defineProperty(SubscribeMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(SubscribeMessage.prototype, "options", {
get: function () { return this._options; },
enumerable: true,
configurable: true
});
Object.defineProperty(SubscribeMessage.prototype, "topic", {
get: function () { return this._topic; },
enumerable: true,
configurable: true
});
return SubscribeMessage;
})();
var SubscribedMessage = (function () {
function SubscribedMessage(messageArguments) {
this._request = messageArguments[0], this._subscription = messageArguments[1];
}
Object.defineProperty(SubscribedMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Subscribed; },
enumerable: true,
configurable: true
});
Object.defineProperty(SubscribedMessage.prototype, "messageName", {
get: function () { return "SUBSCRIBED"; },
enumerable: true,
configurable: true
});
Object.defineProperty(SubscribedMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(SubscribedMessage.prototype, "subscription", {
get: function () { return this._subscription; },
enumerable: true,
configurable: true
});
return SubscribedMessage;
})();
var UnsubscribeMessage = (function () {
function UnsubscribeMessage(messageArguments) {
this._request = messageArguments[0], this._subscription = messageArguments[1];
}
Object.defineProperty(UnsubscribeMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Unsubscribe; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnsubscribeMessage.prototype, "messageName", {
get: function () { return "UNSUBSCRIBE"; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnsubscribeMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnsubscribeMessage.prototype, "subscription", {
get: function () { return this._subscription; },
enumerable: true,
configurable: true
});
return UnsubscribeMessage;
})();
var UnsubscribedMessage = (function () {
function UnsubscribedMessage(messageArguments) {
this._request = messageArguments[0];
}
Object.defineProperty(UnsubscribedMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Unsubscribed; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnsubscribedMessage.prototype, "messageName", {
get: function () { return "UNSUBSCRIBED"; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnsubscribedMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
return UnsubscribedMessage;
})();
var EventMessage = (function () {
function EventMessage(messageArguments) {
this._subscription = messageArguments[0], this._publication = messageArguments[1], this._details = messageArguments[2], this._arguments = messageArguments[3], this._argumentsKw = messageArguments[4];
}
Object.defineProperty(EventMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Event; },
enumerable: true,
configurable: true
});
Object.defineProperty(EventMessage.prototype, "messageName", {
get: function () { return "EVENT"; },
enumerable: true,
configurable: true
});
Object.defineProperty(EventMessage.prototype, "subscription", {
get: function () { return this._subscription; },
enumerable: true,
configurable: true
});
Object.defineProperty(EventMessage.prototype, "publication", {
get: function () { return this._publication; },
enumerable: true,
configurable: true
});
Object.defineProperty(EventMessage.prototype, "details", {
get: function () { return this._details; },
enumerable: true,
configurable: true
});
Object.defineProperty(EventMessage.prototype, "arguments", {
get: function () { return this._arguments; },
enumerable: true,
configurable: true
});
Object.defineProperty(EventMessage.prototype, "argumentsKw", {
get: function () { return this._argumentsKw; },
enumerable: true,
configurable: true
});
return EventMessage;
})();
var CallMessage = (function () {
function CallMessage(messageArguments) {
this._request = messageArguments[0], this._options = messageArguments[1], this._procedure = messageArguments[2], this._arguments = messageArguments[3], this._argumentsKw = messageArguments[4];
}
Object.defineProperty(CallMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Call; },
enumerable: true,
configurable: true
});
Object.defineProperty(CallMessage.prototype, "messageName", {
get: function () { return "CALL"; },
enumerable: true,
configurable: true
});
Object.defineProperty(CallMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(CallMessage.prototype, "options", {
get: function () { return this._options; },
enumerable: true,
configurable: true
});
Object.defineProperty(CallMessage.prototype, "procedure", {
get: function () { return this._procedure; },
enumerable: true,
configurable: true
});
Object.defineProperty(CallMessage.prototype, "arguments", {
get: function () { return this._arguments; },
enumerable: true,
configurable: true
});
Object.defineProperty(CallMessage.prototype, "argumentsKw", {
get: function () { return this._argumentsKw; },
enumerable: true,
configurable: true
});
return CallMessage;
})();
var CancelMessage = (function () {
function CancelMessage(messageArguments) {
this._request = messageArguments[0], this._options = messageArguments[1];
}
Object.defineProperty(CancelMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Cancel; },
enumerable: true,
configurable: true
});
Object.defineProperty(CancelMessage.prototype, "messageName", {
get: function () { return "CANCEL"; },
enumerable: true,
configurable: true
});
Object.defineProperty(CancelMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(CancelMessage.prototype, "options", {
get: function () { return this._options; },
enumerable: true,
configurable: true
});
return CancelMessage;
})();
var ResultMessage = (function () {
function ResultMessage(messageArguments) {
this._request = messageArguments[0], this._details = messageArguments[1], this._arguments = messageArguments[2], this._argumentsKw = messageArguments[3];
}
Object.defineProperty(ResultMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Result; },
enumerable: true,
configurable: true
});
Object.defineProperty(ResultMessage.prototype, "messageName", {
get: function () { return "RESULT"; },
enumerable: true,
configurable: true
});
Object.defineProperty(ResultMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(ResultMessage.prototype, "details", {
get: function () { return this._details; },
enumerable: true,
configurable: true
});
Object.defineProperty(ResultMessage.prototype, "arguments", {
get: function () { return this._arguments; },
enumerable: true,
configurable: true
});
Object.defineProperty(ResultMessage.prototype, "argumentsKw", {
get: function () { return this._argumentsKw; },
enumerable: true,
configurable: true
});
return ResultMessage;
})();
var RegisterMessage = (function () {
function RegisterMessage(messageArguments) {
this._request = messageArguments[0], this._options = messageArguments[1], this._procedure = messageArguments[2];
}
Object.defineProperty(RegisterMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Register; },
enumerable: true,
configurable: true
});
Object.defineProperty(RegisterMessage.prototype, "messageName", {
get: function () { return "REGISTER"; },
enumerable: true,
configurable: true
});
Object.defineProperty(RegisterMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(RegisterMessage.prototype, "options", {
get: function () { return this._options; },
enumerable: true,
configurable: true
});
Object.defineProperty(RegisterMessage.prototype, "procedure", {
get: function () { return this._procedure; },
enumerable: true,
configurable: true
});
return RegisterMessage;
})();
var RegisteredMessage = (function () {
function RegisteredMessage(messageArguments) {
this._request = messageArguments[0], this._registration = messageArguments[1];
}
Object.defineProperty(RegisteredMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Registered; },
enumerable: true,
configurable: true
});
Object.defineProperty(RegisteredMessage.prototype, "messageName", {
get: function () { return "REGISTERED"; },
enumerable: true,
configurable: true
});
Object.defineProperty(RegisteredMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(RegisteredMessage.prototype, "registration", {
get: function () { return this._registration; },
enumerable: true,
configurable: true
});
return RegisteredMessage;
})();
var UnregisterMessage = (function () {
function UnregisterMessage(messageArguments) {
this._request = messageArguments[0], this._registration = messageArguments[1];
}
Object.defineProperty(UnregisterMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Unregister; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnregisterMessage.prototype, "messageName", {
get: function () { return "UNREGISTER"; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnregisterMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnregisterMessage.prototype, "registration", {
get: function () { return this._registration; },
enumerable: true,
configurable: true
});
return UnregisterMessage;
})();
var UnregisteredMessage = (function () {
function UnregisteredMessage(messageArguments) {
this._request = messageArguments[0];
}
Object.defineProperty(UnregisteredMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Unregistered; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnregisteredMessage.prototype, "messageName", {
get: function () { return "UNREGISTERED"; },
enumerable: true,
configurable: true
});
Object.defineProperty(UnregisteredMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
return UnregisteredMessage;
})();
var InvocationMessage = (function () {
function InvocationMessage(messageArguments) {
this._request = messageArguments[0], this._registration = messageArguments[1], this._details = messageArguments[2], this._arguments = messageArguments[3], this._argumentsKw = messageArguments[4];
}
Object.defineProperty(InvocationMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Invocation; },
enumerable: true,
configurable: true
});
Object.defineProperty(InvocationMessage.prototype, "messageName", {
get: function () { return "INVOCATION"; },
enumerable: true,
configurable: true
});
Object.defineProperty(InvocationMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(InvocationMessage.prototype, "registration", {
get: function () { return this._registration; },
enumerable: true,
configurable: true
});
Object.defineProperty(InvocationMessage.prototype, "details", {
get: function () { return this._details; },
enumerable: true,
configurable: true
});
Object.defineProperty(InvocationMessage.prototype, "arguments", {
get: function () { return this._arguments; },
enumerable: true,
configurable: true
});
Object.defineProperty(InvocationMessage.prototype, "argumentsKw", {
get: function () { return this._argumentsKw; },
enumerable: true,
configurable: true
});
return InvocationMessage;
})();
var InterruptMessage = (function () {
function InterruptMessage(messageArguments) {
this._request = messageArguments[0], this._options = messageArguments[1];
}
Object.defineProperty(InterruptMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Interrupt; },
enumerable: true,
configurable: true
});
Object.defineProperty(InterruptMessage.prototype, "messageName", {
get: function () { return "INTERRUPT"; },
enumerable: true,
configurable: true
});
Object.defineProperty(InterruptMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(InterruptMessage.prototype, "options", {
get: function () { return this._options; },
enumerable: true,
configurable: true
});
return InterruptMessage;
})();
var YieldMessage = (function () {
function YieldMessage(messageArguments) {
this._request = messageArguments[0], this._options = messageArguments[1], this._arguments = messageArguments[2], this._argumentsKw = messageArguments[3];
}
Object.defineProperty(YieldMessage.prototype, "messageCode", {
get: function () { return WampMessageType.Yield; },
enumerable: true,
configurable: true
});
Object.defineProperty(YieldMessage.prototype, "messageName", {
get: function () { return "YIELD"; },
enumerable: true,
configurable: true
});
Object.defineProperty(YieldMessage.prototype, "request", {
get: function () { return this._request; },
enumerable: true,
configurable: true
});
Object.defineProperty(YieldMessage.prototype, "options", {
get: function () { return this._options; },
enumerable: true,
configurable: true
});
Object.defineProperty(YieldMessage.prototype, "arguments", {
get: function () { return this._arguments; },
enumerable: true,
configurable: true
});
Object.defineProperty(YieldMessage.prototype, "argumentsKw", {
get: function () { return this._argumentsKw; },
enumerable: true,
configurable: true
});
return YieldMessage;
})();
enum WampMessageType {
Hello = 1,
Welcome = 2,
Abort = 3,
Challenge = 4,
Authenticate = 5,
Goodbye = 6,
Error = 8,
Publish = 16,
Published = 17,
Subscribe = 32,
Subscribed = 33,
Unsubscribe = 34,
Unsubscribed = 35,
Event = 36,
Call = 48,
Cancel = 49,
Result = 50,
Register = 64,
Registered = 65,
Unregister = 66,
Unregistered = 67,
Invocation = 68,
Interrupt = 69,
Yield = 70
}
function parseWampMessage(message: string): any {
var messageArray: any[] = JSON.parse(message);
var [messageType, ... arguments] = messageArray;
switch (messageType) {
case WampMessageType.Hello:
return new HelloMessage(arguments);
case WampMessageType.Welcome:
return new WelcomeMessage(arguments);
case WampMessageType.Abort:
return new AbortMessage(arguments);
case WampMessageType.Challenge:
return new ChallengeMessage(arguments);
case WampMessageType.Authenticate:
return new AuthenticateMessage(arguments);
case WampMessageType.Goodbye:
return new GoodbyeMessage(arguments);
case WampMessageType.Error:
return new ErrorMessage(arguments);
case WampMessageType.Publish:
return new PublishMessage(arguments);
case WampMessageType.Published:
return new PublishedMessage(arguments);
case WampMessageType.Subscribe:
return new SubscribeMessage(arguments);
case WampMessageType.Subscribed:
return new SubscribedMessage(arguments);
case WampMessageType.Unsubscribe:
return new UnsubscribeMessage(arguments);
case WampMessageType.Unsubscribed:
return new UnsubscribedMessage(arguments);
case WampMessageType.Event:
return new EventMessage(arguments);
case WampMessageType.Call:
return new CallMessage(arguments);
case WampMessageType.Cancel:
return new CancelMessage(arguments);
case WampMessageType.Result:
return new ResultMessage(arguments);
case WampMessageType.Register:
return new RegisterMessage(arguments);
case WampMessageType.Registered:
return new RegisteredMessage(arguments);
case WampMessageType.Unregister:
return new UnregisterMessage(arguments);
case WampMessageType.Unregistered:
return new UnregisteredMessage(arguments);
case WampMessageType.Invocation:
return new InvocationMessage(arguments);
case WampMessageType.Interrupt:
return new InterruptMessage(arguments);
case WampMessageType.Yield:
return new YieldMessage(arguments);
default:
return null;
}
}
class HelloMessage {
private _realm;
private _details;
constructor(messageArguments: any[]) {
[this._realm, this._details] = messageArguments;
}
get messageCode() { return WampMessageType.Hello; }
get messageName() { return "HELLO"; }
get realm() { return this._realm; }
get details() { return this._details; }
}
class WelcomeMessage {
private _session;
private _details;
constructor(messageArguments: any[]) {
[this._session, this._details] = messageArguments;
}
get messageCode() { return WampMessageType.Welcome; }
get messageName() { return "WELCOME"; }
get session() { return this._session; }
get details() { return this._details; }
}
class AbortMessage {
private _details;
private _reason;
constructor(messageArguments: any[]) {
[this._details, this._reason] = messageArguments;
}
get messageCode() { return WampMessageType.Abort; }
get messageName() { return "ABORT"; }
get details() { return this._details; }
get reason() { return this._reason; }
}
class ChallengeMessage {
private _authMethod;
private _extra;
constructor(messageArguments: any[]) {
[this._authMethod, this._extra] = messageArguments;
}
get messageCode() { return WampMessageType.Challenge; }
get messageName() { return "CHALLENGE"; }
get authMethod() { return this._authMethod; }
get extra() { return this._extra; }
}
class AuthenticateMessage {
private _signature;
private _extra;
constructor(messageArguments: any[]) {
[this._signature, this._extra] = messageArguments;
}
get messageCode() { return WampMessageType.Authenticate; }
get messageName() { return "AUTHENTICATE"; }
get signature() { return this._signature; }
get extra() { return this._extra; }
}
class GoodbyeMessage {
private _details;
private _reason;
constructor(messageArguments: any[]) {
[this._details, this._reason] = messageArguments;
}
get messageCode() { return WampMessageType.Goodbye; }
get messageName() { return "GOODBYE"; }
get details() { return this._details; }
get reason() { return this._reason; }
}
class ErrorMessage {
private _type;
private _request;
private _details;
private _error;
private _arguments;
private _argumentsKw;
constructor(messageArguments: any[]) {
[this._type, this._request, this._details, this._error, this._arguments, this._argumentsKw] = messageArguments;
}
get messageCode() { return WampMessageType.Error; }
get messageName() { return "ERROR"; }
get type() { return this._type; }
get request() { return this._request; }
get details() { return this._details; }
get error() { return this._error; }
get arguments() { return this._arguments; }
get argumentsKw() { return this._argumentsKw; }
}
class PublishMessage {
private _request;
private _options;
private _topic;
private _arguments;
private _argumentsKw;
constructor(messageArguments: any[]) {
[this._request, this._options, this._topic, this._arguments, this._argumentsKw] = messageArguments;
}
get messageCode() { return WampMessageType.Publish; }
get messageName() { return "PUBLISH"; }
get request() { return this._request; }
get options() { return this._options; }
get topic() { return this._topic; }
get arguments() { return this._arguments; }
get argumentsKw() { return this._argumentsKw; }
}
class PublishedMessage {
private _request;
private _publication;
constructor(messageArguments: any[]) {
[this._request, this._publication] = messageArguments;
}
get messageCode() { return WampMessageType.Published; }
get messageName() { return "PUBLISHED"; }
get request() { return this._request; }
get publication() { return this._publication; }
}
class SubscribeMessage {
private _request;
private _options;
private _topic;
constructor(messageArguments: any[]) {
[this._request, this._options, this._topic] = messageArguments;
}
get messageCode() { return WampMessageType.Subscribe; }
get messageName() { return "SUBSCRIBE"; }
get request() { return this._request; }
get options() { return this._options; }
get topic() { return this._topic; }
}
class SubscribedMessage {
private _request;
private _subscription;
constructor(messageArguments: any[]) {
[this._request, this._subscription] = messageArguments;
}
get messageCode() { return WampMessageType.Subscribed; }
get messageName() { return "SUBSCRIBED"; }
get request() { return this._request; }
get subscription() { return this._subscription; }
}
class UnsubscribeMessage {
private _request;
private _subscription;
constructor(messageArguments: any[]) {
[this._request, this._subscription] = messageArguments;
}
get messageCode() { return WampMessageType.Unsubscribe; }
get messageName() { return "UNSUBSCRIBE"; }
get request() { return this._request; }
get subscription() { return this._subscription; }
}
class UnsubscribedMessage {
private _request;
constructor(messageArguments: any[]) {
[this._request] = messageArguments;
}
get messageCode() { return WampMessageType.Unsubscribed; }
get messageName() { return "UNSUBSCRIBED"; }
get request() { return this._request; }
}
class EventMessage {
private _subscription;
private _publication;
private _details;
private _arguments;
private _argumentsKw;
constructor(messageArguments: any[]) {
[this._subscription, this._publication, this._details, this._arguments, this._argumentsKw] = messageArguments;
}
get messageCode() { return WampMessageType.Event; }
get messageName() { return "EVENT"; }
get subscription() { return this._subscription; }
get publication() { return this._publication; }
get details() { return this._details; }
get arguments() { return this._arguments; }
get argumentsKw() { return this._argumentsKw; }
}
class CallMessage {
private _request;
private _options;
private _procedure;
private _arguments;
private _argumentsKw;
constructor(messageArguments: any[]) {
[this._request, this._options, this._procedure, this._arguments, this._argumentsKw] = messageArguments;
}
get messageCode() { return WampMessageType.Call; }
get messageName() { return "CALL"; }
get request() { return this._request; }
get options() { return this._options; }
get procedure() { return this._procedure; }
get arguments() { return this._arguments; }
get argumentsKw() { return this._argumentsKw; }
}
class CancelMessage {
private _request;
private _options;
constructor(messageArguments: any[]) {
[this._request, this._options] = messageArguments;
}
get messageCode() { return WampMessageType.Cancel; }
get messageName() { return "CANCEL"; }
get request() { return this._request; }
get options() { return this._options; }
}
class ResultMessage {
private _request;
private _details;
private _arguments;
private _argumentsKw;
constructor(messageArguments: any[]) {
[this._request, this._details, this._arguments, this._argumentsKw] = messageArguments;
}
get messageCode() { return WampMessageType.Result; }
get messageName() { return "RESULT"; }
get request() { return this._request; }
get details() { return this._details; }
get arguments() { return this._arguments; }
get argumentsKw() { return this._argumentsKw; }
}
class RegisterMessage {
private _request;
private _options;
private _procedure;
constructor(messageArguments: any[]) {
[this._request, this._options, this._procedure] = messageArguments;
}
get messageCode() { return WampMessageType.Register; }
get messageName() { return "REGISTER"; }
get request() { return this._request; }
get options() { return this._options; }
get procedure() { return this._procedure; }
}
class RegisteredMessage {
private _request;
private _registration;
constructor(messageArguments: any[]) {
[this._request, this._registration] = messageArguments;
}
get messageCode() { return WampMessageType.Registered; }
get messageName() { return "REGISTERED"; }
get request() { return this._request; }
get registration() { return this._registration; }
}
class UnregisterMessage {
private _request;
private _registration;
constructor(messageArguments: any[]) {
[this._request, this._registration] = messageArguments;
}
get messageCode() { return WampMessageType.Unregister; }
get messageName() { return "UNREGISTER"; }
get request() { return this._request; }
get registration() { return this._registration; }
}
class UnregisteredMessage {
private _request;
constructor(messageArguments: any[]) {
[this._request] = messageArguments;
}
get messageCode() { return WampMessageType.Unregistered; }
get messageName() { return "UNREGISTERED"; }
get request() { return this._request; }
}
class InvocationMessage {
private _request;
private _registration;
private _details;
private _arguments;
private _argumentsKw;
constructor(messageArguments: any[]) {
[this._request, this._registration, this._details, this._arguments, this._argumentsKw] = messageArguments;
}
get messageCode() { return WampMessageType.Invocation; }
get messageName() { return "INVOCATION"; }
get request() { return this._request; }
get registration() { return this._registration; }
get details() { return this._details; }
get arguments() { return this._arguments; }
get argumentsKw() { return this._argumentsKw; }
}
class InterruptMessage {
private _request;
private _options;
constructor(messageArguments: any[]) {
[this._request, this._options] = messageArguments;
}
get messageCode() { return WampMessageType.Interrupt; }
get messageName() { return "INTERRUPT"; }
get request() { return this._request; }
get options() { return this._options; }
}
class YieldMessage {
private _request;
private _options;
private _arguments;
private _argumentsKw;
constructor(messageArguments: any[]) {
[this._request, this._options, this._arguments, this._argumentsKw] = messageArguments;
}
get messageCode() { return WampMessageType.Yield; }
get messageName() { return "YIELD"; }
get request() { return this._request; }
get options() { return this._options; }
get arguments() { return this._arguments; }
get argumentsKw() { return this._argumentsKw; }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment