/// <summary> /// 独立信令 邀请接口 /// 该接口用于邀请对方加入频道,邀请者必须是创建者或者是频道中成员。 /// 如果需要对离线成员邀请,可以打开离线邀请开关并填写推送信息。被邀请者在线后通过离线通知接收到该邀请,并通过频道信息中的invalid_字段判断频道的有效性,也可以对所有离线消息处理后判断该邀请是否被取消。 /// </summary> /// <param name="param">邀请的传入参数,其中邀请标识由用户生成,在取消邀请和邀请通知及接受拒绝时做对应</param> /// <param name="cb">结果回调见NimSignalingDef.cs,其中opt_res_param无效</param> public static void Invite(NIMSignalingInviteParam param, InviteDelegate cb) { int nSizeOfParam = Marshal.SizeOf(param); IntPtr param_ptr = Marshal.AllocHGlobal(nSizeOfParam); try { Marshal.StructureToPtr(param, param_ptr, false); var user_ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb); SignalingNativeMethods.nim_signaling_invite(param_ptr, NimSignalingInviteCb, user_ptr); } catch (Exception ex) { } finally { Marshal.FreeHGlobal(param_ptr); } }
/// <summary> /// 独立信令 邀请接口 /// 该接口用于邀请对方加入频道,邀请者必须是创建者或者是频道中成员。 /// 如果需要对离线成员邀请,可以打开离线邀请开关并填写推送信息。被邀请者在线后通过离线通知接收到该邀请,并通过频道信息中的invalid_字段判断频道的有效性,也可以对所有离线消息处理后判断该邀请是否被取消。 /// </summary> /// <param name="param">邀请的传入参数,其中邀请标识由用户生成,在取消邀请和邀请通知及接受拒绝时做对应</param> /// <param name="cb">结果回调见NimSignalingDef.cs,其中opt_res_param无效</param> public static void Invite(NIMSignalingInviteParam param, NimSignalingOptInviteHandler cb) { NIMSignalingInviteParam_C param_c = SignalHelper.GetNativeNIMSignalingInviteParam(param); int nSizeOfParam = Marshal.SizeOf(param_c); IntPtr param_ptr = Marshal.AllocHGlobal(nSizeOfParam); try { Marshal.StructureToPtr(param_c, param_ptr, false); var user_ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb); SignalingNativeMethods.nim_signaling_invite(param_ptr, NimSignalingInviteCb, user_ptr); } catch (Exception) { cb?.Invoke(NIMSignalingInviteResCode.kAbnormal); } finally { Marshal.FreeHGlobal(param_ptr); } }