pubSub.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. // /*
  2. // * redis发布订阅
  3. // *example:
  4. // * let channel="ryan";
  5. // redis.pubSub.registerHandlers("ryan",msg=> console.log(msg));
  6. // redis.pubSub.subscribe(channel);
  7. //
  8. // redis.pubSub.publish(channel,"hello from chen");
  9. // */
  10. // "use strict";
  11. //
  12. // let configFile = require('../../include/commons').CONFIG_FILE;
  13. // let config = require('../../resources/config/' + configFile);
  14. //
  15. // let RedisModel = require('./../redis.model');
  16. // let RedisSubClient = require('./redisSubClient');
  17. // let RedisPubClient = require('./redisPubClient');
  18. // let RedisClient = require('../../repository/redis/redis.client.js');
  19. // let redisPubConn = RedisPubClient.redisClient().connection;
  20. // let redisSubConn = RedisSubClient.redisClient().connection;
  21. // let redis = RedisClient.redisClient().connection;
  22. // let Sessions = require('../../models/sessions/sessions');
  23. // let WechatClient = require("../client/wechat.client.js");
  24. // let WlyySDK = require("../../util/wlyy.sdk");
  25. // let AppClient = require("../client/app.client.js");
  26. // let Participants = require('../sessions/participants');
  27. // let Messages = require('../messages/messages');
  28. // const REDIS_KEYS = require('../../include/commons').REDIS_KEYS;
  29. // let ObjectUtil = require("../../util/object.util.js");
  30. // let logger = require('../../util/log.js');
  31. // let SessionRepo = require('../../repository/mysql/session.repo');
  32. // let ParticipantRepo = require('../../repository/mysql/participant.repo');
  33. //
  34. // const SESSION_TYPES = require('../../include/commons').SESSION_TYPES;
  35. // const SESSION_BUSINESS_TYPE = require('../../include/commons').SESSION_BUSINESS_TYPE;
  36. //
  37. // class PubSub{
  38. // constructor(){
  39. // this.sub=redisSubConn;
  40. // this.handlers=new Map();
  41. //
  42. // this.subAction=(channle,message)=>{
  43. // let actions= this.handlers.get(channle)||new Set();
  44. // for(let action of actions)
  45. // {
  46. // console.log("接收消息:"+message);
  47. // message = JSON.parse(message);
  48. //
  49. // if(config.pubSubSwitch){//接收订阅消息处理开关,本地运行和测试库单独运行时防止用户接收消息2次
  50. // //Sessions.getRedisPushNotification(message);这里不知为什么无法调用这个方法,提示getRedisPushNotification不是方法
  51. // if (message.targetType=='patient') {
  52. // if(config.environment!='local'){//pc版接收要发给居民的消息不做处理
  53. // WechatClient.sendMessage(message.targetUserId, message.targetUserName, message);
  54. // }
  55. // } else {
  56. // if(message.sessionType=="1"){
  57. // WechatClient.sendReadDoctorByDoctorId(message.targetUserId, message);
  58. // }
  59. // //告知医生新消息
  60. // WechatClient.sendSocketMessageToDoctor(message.targetUserId,message);
  61. // if(config.environment!='local'){//pc版不推送个推
  62. // WlyySDK.request(message.targetUserId, '', '', '', '/im/common/message/messages', 'POST', function (err, res) {
  63. // let count = 0;
  64. // res = JSON.parse(res)
  65. // if (res.status == 200) {
  66. // let data = res.data;
  67. // count = parseInt(JSON.parse(data.imMsgCount).count) + parseInt(data.system.amount) + parseInt(data.healthIndex.amount) + parseInt(data.sign.amount);
  68. // }
  69. //
  70. // AppClient.sendNotification(message.targetUserId, message,message.sessionType,count);
  71. // });
  72. // }
  73. // //外网pcim通过socket推送
  74. // WechatClient.sendPcImSocket(message.targetUserId,message,message.sessionType);
  75. // }
  76. // }
  77. // //action(message);
  78. // }
  79. // }
  80. // this.alredyPublishs=[];
  81. // this.subConnected=false;
  82. // }
  83. //
  84. // publish(channel,message)
  85. // {
  86. // let action=()=>{
  87. // let pub=redisPubConn;
  88. // pub.publish(channel,message);
  89. // console.log("发布消息:channel:"+channel+",message:"+message);
  90. // };
  91. // if(this.subConnected===false)
  92. // {
  93. // this.alredyPublishs.push(action);
  94. // }
  95. // else{
  96. // action();
  97. // }
  98. // }
  99. // registerHandlers(channel,action)
  100. // {
  101. // var actions=this.handlers.get(channel)||new Set();
  102. // actions.add(action);
  103. // this.handlers.set(channel,actions);
  104. // }
  105. // subscribe(channel)
  106. // {
  107. // let self=this;
  108. // this.sub.subscribe(channel,function (err,reply) {
  109. // if(err){
  110. // log.error(err);
  111. // }
  112. // self.subConnected=true;
  113. // for(let publish of self.alredyPublishs){
  114. // publish();
  115. // }
  116. // console.log("订阅成功:"+reply);
  117. // });
  118. //
  119. // this.sub.on("message", function (channel, message) {
  120. // self.subAction(channel,message);
  121. // });
  122. // }
  123. //
  124. // tearDown()
  125. // {
  126. // this.sub.quit();
  127. // }
  128. // }
  129. //
  130. // // Expose class
  131. // module.exports = new PubSub();