123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- /**
- * 此文件内容为常用的系统枚举及变量。
- */
- /**
- * 系统部署时的配置文件。
- *
- * @type {string}
- */
- "use strict";
- let configFile = "config.";
- if (process.env.IM_PROFILE === "prod") {
- configFile += "prod";
- } else if (process.env.IM_PROFILE === "test") {
- configFile += "test";
- } else {
- configFile += "dev";
- }
- exports.CONFIG_FILE = configFile;
- /**
- * 会话类型
- */
- const SESSION_TYPES = {
- SYSTEM: 0, // 系统会话
- MUC: 1, // MUC会话
- P2P: 2, // P2P
- GROUP: 3, // 固定组
- DISCUSSION: 4 // 临时讨论组
- };
- exports.SESSION_TYPES = SESSION_TYPES;
- /**
- * 消息内容类型。
- */
- exports.CONTENT_TYPE = {
- PlainText: 1, // 信息
- Image: 2, // 图片信息
- Audio: 3, // 语音信息
- Article: 4, // 文章信息
- GoTo: 5, // 跳转信息
- TopicBegin: 6, // 议题开始
- TopicEnd: 7 // 议题结束
- };
- /**
- * 客户端平台。
- */
- exports.PLATFORM = {
- iOS: 0,
- Android: 1,
- Wechat: 10
- };
- /**
- * 组类型。
- */
- exports.GROUP_TYPE = {
- AdminTeam: 1,
- DiscussionGroup: 2
- };
- /**
- * 模型事件。
- *
- * @type {{Error: string, DataNotFound: string, OK: string}}
- */
- exports.MODEL_EVENTS = {
- Error: "error", // 数据库访问出错
- DataNotFound: "no_data", // 找不到指定的数据
- OK: "ok", // 操作结束或有数据返回
- Exists: "exists" // 数据已存在
- };
- /**
- * 整型最大值。
- */
- exports.MAX_INT = 9007199254740992;
- /**
- * 置顶会话基础分值,以此为下限向上递增。
- */
- exports.STICKY_SESSION_BASE_SCORE = 9000000000000;
- /**
- * 默认分页大小。
- */
- exports.DEFAULT_PAGE_SIZE = 100;
- /**
- * Redis Key列表与占位符。
- */
- const REDIS_KEY_REPLACER = "{id}";
- exports.REDIS_KEY_REPLACER = REDIS_KEY_REPLACER;
- exports.SESSION_USER_STATUS={
- "ONLINE":"0",
- "OTHER":"1"
- }
- exports.REDIS_KEYS = {
- Users: "users:",
- User: "users:" + REDIS_KEY_REPLACER,
- UserAppStatus: "users:" + REDIS_KEY_REPLACER + ":app_status",
- UserWechatStatus: "users:" + REDIS_KEY_REPLACER + ":wechat_status",
- UserSessions: "users:" + REDIS_KEY_REPLACER + ":sessions",
- Sessions: "sessions:",
- Session: "sessions:" + REDIS_KEY_REPLACER,
- Participants: "participants:" + REDIS_KEY_REPLACER,
- ParticipantsRole: "participants:" + REDIS_KEY_REPLACER + ":role",
- Topics: "sessions:" + REDIS_KEY_REPLACER + ":topics",
- Topic: "topics:" + REDIS_KEY_REPLACER,
- Messages: "sessions:" + REDIS_KEY_REPLACER + ":messages",
- MessagesByTimestamp: "sessions:" + REDIS_KEY_REPLACER + ":messages_by_timestamp"
- };
- exports.DB_TABLES = {
- P2pMessages: "p2p_messages",
- MucMessages: "muc_messages",
- GroupMessages: "group_messages",
- DiscussionMessages: "discussion_messages",
- SystemMessages: "system_messages",
- Participants: "participants",
- Sessions: "sessions",
- Topics: "topics",
- StickySessions: "sticky_sessions",
- sessionTypeToTableName: function (sessionType) {
- switch (sessionType) {
- case SESSION_TYPES.SYSTEM:
- return DB_TABLES.SystemMessages;
- case SESSION_TYPES.MUC:
- return DB_TABLES.MucMessages;
- case SESSION_TYPES.P2P:
- return DB_TABLES.P2pMessages;
- case SESSION_TYPES.GROUP:
- return DB_TABLES.GroupMessages;
- case SESSION_TYPES.DISCUSSION:
- return DB_TABLES.DiscussionMessages;
- default:
- throw {message: "Unknown session type"};
- }
- }
- };
|