package com.sjyt.icom.asst.service;

import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;

import java.util.Set;

/**
 * 发送消息接口
 *
 * @author renyanru
 * @version V1.0.0
 * @date 2022/6/10 10:36
 */
public interface ISendMessage<T> {
  /**
   * 发送消息 接收消息为指定uid
   * @param uid 用户标识
   * @param t 消息类型
   */
  void send(String uid, T t);

  /**
   * 发送消息 接收消息者为多个用户标识，并且排除自身
   * @param ids 用户标识集合
   * @param t 消息类型
   */
  void send(Set<String> ids, T t);

  /**
   * 发送消息 接收对象为管道对应的用户
   * @param ch 管道
   * @param t 消息体
   */
  void send(Channel ch, T t);

  /**
   * 发送消息 接收消息为消息体from
   * @param t 消息类型
   */
//  void send2From(T t);

  /**
   * 发送消息 接收消息为消息体to
   * @param t 消息类型
   */
//  void send2To(T t);

}
