Browse Source

add sticky sessions

sand 8 years ago
parent
commit
457e49d8c3

+ 5 - 2
src/server/endpoints/users.endpoint.js

@ -23,6 +23,9 @@ const MODEL_EVENTS = require('../include/commons').MODEL_EVENTS;
 * 请求URL:
 *  /users/login?user_id=sand&token=0PFWlKmLBN9YzhCfFWVgYA&client_id=H6FYbDejks6VjMmW3uH7V6&platform=0
 *
 * 返回值:
 *  登录后的token.
 *
 * 参数说明:
 *  user_id:用户ID
 *  token:个推的token
@ -51,8 +54,8 @@ router.get(APIv1.Users.Login, function (req, res) {
    }
    let users = new Users();
    users.login(userId, function (err, result) {
    users.login(userId, platform, token, clientId, function (err, result) {
        res.status(200).send(result);
    });
});

+ 2 - 6
src/server/models/sessions/sessions.js

@ -144,13 +144,9 @@ class Sessions extends RedisModel {
    /**
     * 更新最后一条消息
     * @param session_key rediskey
     * @param create_date 创建时间
     * @param last_content 最后一条消息内容
     * @param last_content_type 消息类型
     * @param type 会话类型
     * @param sender 发送者ID
     * @param sendername 发送者名字
     * @param session_type
     * @param name 议题名称
     * @param message
     * @returns {*}
     */
     updateLastContent(session_key,session_type,name,message){

+ 10 - 1
src/server/models/user/users.js

@ -134,11 +134,20 @@ class Users extends RedisModel {
    /**
     * 用户登录。
     *
     * 用户登录时会加载与之相关的会话列表,会话消息,用户自身信息:App状态与微信状态。
     *
     * @param userId
     * @param outCallback
     *
     * @return 用户token
     */
    login(userId, outCallback){
    login(userId, platform, token, clientId, outCallback){
        let self = this;
        async.waterfall([
            function (callback) {
            }
        ]);
        DoctorRepo.deleteToken(token, function (err, result) {
            if (err) {
                ModelUtil.emitDbError(self.eventEmitter, 'Error occurs when user login and delete token', err);

+ 4 - 4
src/server/resources/schema/ichat_schema.1.2.8.sql

@ -120,12 +120,12 @@ CREATE TABLE `sessions`
) COMMENT='会话'
;
;
CREATE TABLE `sticky_sessions`
(
	`user_id` VARCHAR(50) COMMENT '用户ID',
	`session_id` VARCHAR(50) COMMENT '会话ID',
	`score` INTEGER COMMENT '置顶分值'
	`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
	`session_id` VARCHAR(50) NOT NULL COMMENT '会话ID',
	`score` INTEGER COMMENT '置顶分值',
	CONSTRAINT `PK_sticky_sessions` PRIMARY KEY (`user_id`,`session_id`)
) COMMENT='置顶会话'
;

+ 5 - 4
src/server/resources/schema/temp.sql

@ -1,6 +1,6 @@
/* ---------------------------------------------------- */
/*  Generated by Enterprise Architect Version 12.0 		*/
/*  Created On : 16-12月-2016 15:18:58 				*/
/*  Created On : 16-12月-2016 15:41:45 				*/
/*  DBMS       : MySql 						*/
/* ---------------------------------------------------- */
@ -15,9 +15,10 @@ DROP TABLE IF EXISTS `sticky_sessions` CASCADE
CREATE TABLE `sticky_sessions`
(
	`user_id` VARCHAR(50) COMMENT '用户ID',
	`session_id` VARCHAR(50) COMMENT '会话ID',
	`score` INTEGER COMMENT '置顶分值'
	`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
	`session_id` VARCHAR(50) NOT NULL COMMENT '会话ID',
	`score` INTEGER COMMENT '置顶分值',
	CONSTRAINT `PK_sticky_sessions` PRIMARY KEY (`user_id`,`session_id`)
) COMMENT='置顶会话'
;