1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /**
- * 房间消息管理IM接口
- */
- 'use strict';
- const F = require('../common/function');
- const C = require('../config/index');
- const _ = require('underscore');
- _.str = require('underscore.string');
- _.v = require('validator');
- const co = require('co');
- module.exports = function (server) {
- //model、manager Map对象
- let managerMap = server.common_mgr.mgr_map;
- let mgr_map = managerMap;
- //server 配置
- let imapp = server;
- /**
- * 6.1 发送非文本消息(Client -> Server)
- */
- imapp.io.route('sendMessage', function* (next, ctx, msg, cb) {
- yield F.imCheckParamsNull(msg.req_data, "room_id");
- let room_id = msg.req_data.room_id;
- let socket_id = ctx.uniid;
- let is_in_room = mgr_map.validator.isRoomSocket(room_id, socket_id);
- if (!is_in_room) {
- F.throwErrCode(100201);
- }
- let room_socket = yield mgr_map.redis.getRoomSocketList(room_id);
- co(mgr_map.notice.push(room_socket, 'sendMessageReport', msg.req_data));
- yield mgr_map.im.sendRes(ctx.uniid, msg, F.packResJson(0));
- });
- /**
- * 6.3 发送文本消息(Client -> Server)
- */
- imapp.io.route('sendText', function* (next, ctx, msg, cb) {
- yield F.imCheckParamsNull(msg.req_data, "room_id");
- let room_id = msg.req_data.room_id;
- let socket_id = ctx.uniid;
- let is_in_room = mgr_map.validator.isRoomSocket(room_id, socket_id);
- if (!is_in_room) {
- F.throwErrCode(100201);
- }
- let ret = yield mgr_map.validator.checkRealName(ctx.uid, 'sendtext');
- let result;
- if (ret.code == 200) {
- let room_socket = yield mgr_map.redis.getRoomSocketList(room_id);
- co(mgr_map.notice.push(room_socket, 'sendTextReport', msg.req_data));
- result = F.packResJson(0);
- } else {
- result = F.packResErrMsg(ret.code, ret.message);
- }
- yield mgr_map.redis.addRoomHistory(room_id, msg);
- yield mgr_map.im.sendRes(ctx.uniid, msg, result);
- });
- };
|