Light12306/Web12306/js/ui/chat/roomsession.js

55 lines
1.2 KiB
JavaScript
Raw Normal View History

2014-08-13 00:14:00 +08:00
define(function (require, exports, module) {
var EventObject = require("../../platform/EventObject.js");
var ep = require("../../platform/extensionPort.js");
var port = ep.port;
2014-08-08 20:46:37 +08:00
2014-08-13 00:14:00 +08:00
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
}
2014-08-08 20:46:37 +08:00
});