فهرست منبع

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/im.doctor into dev

8 سال پیش
والد
کامیت
a68b9579fa

+ 0 - 15
im/.idea/im.iml

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
  <component name="NewModuleRootManager">
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
      <excludeFolder url="file://$MODULE_DIR$/.tmp" />
      <excludeFolder url="file://$MODULE_DIR$/src/doctor/node_modules" />
      <excludeFolder url="file://$MODULE_DIR$/temp" />
      <excludeFolder url="file://$MODULE_DIR$/tmp" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="im.doctor" level="project" />
  </component>
</module>

+ 18 - 13
src/doctor/app.armour.js

@ -1,22 +1,24 @@
/**
    服务守护脚本。当服务器进程失败时,重启IM服务器。
    守护服务不是应用程序的入口,但作为服务的外壳,提供进程信号监听与进程重启,保证服务的连续性。
 * 服务守护脚本。当服务器进程失败时,重启IM服务器。
 *
 * 守护服务不是应用程序的入口,但作为服务的外壳,提供进程信号监听与进程重启,保证服务的连续性。
 */
var cp = require('child_process');
var worker;
"use strict";
function spawn(spawnScript) {
    // 进程守护,开启IPC通道,双向通信
    worker = cp.spawn('node', [spawnScript], {
        stdio: [0, 1, 2, 'ipc']
    });
let cp = require('child_process');
let worker;
function startWorker(spawnScript) {
    // 进程守护,开启IPC通道双向通信
    let exeFile = process.platform === "linux" ? "./node" : "node";
    worker = cp.spawn(exeFile, [spawnScript], {stdio: [0, 1, 2, 'ipc']});
    //监视子进程,当其崩溃时重启服务
    worker.on('exit', function (code) {
        if (code !== 0) {
            console.log('IM server is down, restarting...');
            spawn(spawnScript);
            startWorker(spawnScript);
        }
    });
@ -26,7 +28,9 @@ function spawn(spawnScript) {
}
function main() {
    spawn('./app.js');
    console.log('Armour process id: ' + process.pid);
    startWorker('./app.js');
    // 守护进程本身退出时,关闭其启动的服务
    process.on('SIGTERM', function () {
@ -35,4 +39,5 @@ function main() {
    });
}
main();
main();

+ 1 - 1
src/doctor/endpoints/chats.endpoint.js

@ -256,7 +256,7 @@ router.get(APIv1.Chats.PM, function (req, res) {
    let peerId = req.query.peer_id;
    let contentType = req.query.content_type;
    let msgStartId = !req.query.message_start_id ? MAX_INT : parseInt(req.query.message_start_id);
    let msgEndId = !req.query.message_end_id ? 0 : parseInt(req.query.message_end_id);
    let msgEndId = !req.query.message_end_id || req.query.message_end_id === 'null' ? 0 : parseInt(req.query.message_end_id);
    let count = req.query.count === undefined ? DEFAULT_PAGE_SIZE : parseInt(req.query.count);
    let closedInterval = (req.query.closed_interval != false && req.query.closed_interval === "true");

+ 1 - 1
src/doctor/models/doctor.js

@ -135,7 +135,7 @@ class Doctor extends BaseModel {
                if (!isOnline) return;
                Doctor.pushToClient(message.to, userStatus.clientId, userStatus.status, userStatus.token, message.contentType,
                Doctor.pushToClient(message.to, userStatus.client_id, userStatus.status, userStatus.token, message.contentType,
                    title, content, notifyMessage, userStatus.platform, function (err, result) {
                        if (err != null) {
                            console.log(err);

+ 1 - 1
src/doctor/models/group.js

@ -31,7 +31,7 @@ class GroupMessage extends BaseModel {
     */
    sendMessage(message) {
        let self = this;
        gmRepo.isGroupMember(message.group, message.groupType, message.from, function (err, result) {
        groupRepo.isGroupMember(message.group, message.groupType, message.from, function (err, result) {
            if (err) {
                modelUtil.emitDbError(self.eventEmitter, 'Check group member failed', err);
                return;

BIN
src/doctor/node


+ 2 - 2
src/doctor/util/objectUtil.js

@ -7,8 +7,8 @@
 *
 * @param object
 */
exports.isJsonObject = function(object){
    return {}.constructor === object.constructor;
exports.isJsonObject = function(value){
    return {}.constructor === value.constructor;
};
/**