FreeIM/ImHelper.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;

/// <summary>
/// im 核心类 ImClient 实现的静态代理类
/// </summary>
public static class ImHelper
{
    static ImClient _instance;
    public static ImClient Instance => _instance ?? throw new Exception("使用前请初始化 ImHelper.Initialization(...);");

    /// <summary>
    /// 初始化 ImHelper
    /// </summary>
    /// <param name="options"></param>
    public static void Initialization(ImClientOptions options)
    {
        _instance = new ImClient(options);
    }

    /// <summary>
    /// ImServer 连接前的负载、授权,返回 ws 目标地址,使用该地址连接 websocket 服务端
    /// </summary>
    /// <param name="clientId">客户端id</param>
    /// <param name="clientMetaData">客户端相关信息,比如ip</param>
    /// <returns>websocket 地址:ws://xxxx/ws?token=xxx</returns>
    public static string PrevConnectServer(Guid clientId, string clientMetaData) => Instance.PrevConnectServer(clientId, clientMetaData);

    /// <summary>
    /// 向指定的多个客户端id发送消息
    /// </summary>
    /// <param name="senderClientId">发送者的客户端id</param>
    /// <param name="receiveClientId">接收者的客户端id</param>
    /// <param name="message">消息</param>
    /// <param name="receipt">是否回执</param>
    public static void SendMessage(Guid senderClientId, IEnumerable<Guid> receiveClientId, object message, bool receipt = false) =>
        Instance.SendMessage(senderClientId, receiveClientId, message, receipt);

    /// <summary>
    /// 获取所在线客户端id
    /// </summary>
    /// <returns></returns>
    public static IEnumerable<Guid> GetClientListByOnline() => Instance.GetClientListByOnline();

    /// <summary>
    /// 判断客户端是否在线
    /// </summary>
    /// <param name="clientId"></param>
    /// <returns></returns>
    public static bool HasOnline(Guid clientId) => Instance.HasOnline(clientId);

    /// <summary>
    /// 事件订阅
    /// </summary>
    /// <param name="online">上线</param>
    /// <param name="offline">下线</param>
    public static void EventBus(
        Action<(Guid clientId, string clientMetaData)> online,
        Action<(Guid clientId, string clientMetaData)> offline) => Instance.EventBus(online, offline);

后面还有 54 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。