55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
define(function (require, exports, module) {
|
|
var EventObject = require("../../platform/EventObject.js");
|
|
var ep = require("../../platform/extensionPort.js");
|
|
var port = ep.port;
|
|
|
|
|
|
var RoomSession = function () {
|
|
EventObject.apply(this);
|
|
var that = this;
|
|
var room;
|
|
|
|
this.enterRoom = function (targetRoom) {
|
|
if (targetRoom == room)
|
|
return;
|
|
|
|
that.exitRoom();
|
|
room = targetRoom;
|
|
port.postMessage("enterChatRoom", room);
|
|
};
|
|
this.exitRoom = function () {
|
|
port.postMessage("disconnectChatRoom");
|
|
that.fireEvent("exitRoom");
|
|
};
|
|
|
|
Object.defineProperty(this, "room", {
|
|
get: function () {
|
|
return room;
|
|
}
|
|
});
|
|
port.on("chatRoomConnecting", function () {
|
|
that.fireEvent("chatRoomConnecting");
|
|
});
|
|
port.on("chatRoomConnected", function () {
|
|
that.fireEvent("chatRoomConnected");
|
|
});
|
|
port.on("chatRoomMessageReceived", function () {
|
|
that.fireEvent("chatRoomMessageReceived");
|
|
});
|
|
port.on("chatRoomDisconnected", function () {
|
|
that.fireEvent("chatRoomDisconnected");
|
|
});
|
|
|
|
return this;
|
|
};
|
|
RoomSession.prototype = Object.create(EventObject);
|
|
RoomSession.constructor = RoomSession;
|
|
|
|
var session = new RoomSession();
|
|
|
|
return {
|
|
session: session,
|
|
enterRoom: session.enterRoom
|
|
}
|
|
});
|