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 } });