public static async Task Main(string[] args) { string appId = "uay57kigwe0b6f5n0e1d4z4xhydsml3dor24bzwvzr57wdap"; string appKey = "kfgz7jjfsk55r5a8a3y4ttd3je1ko11bkibcikonk32oozww"; string clientId = "wujun"; AVClient.Initialize(appId, appKey); AVRealtime realtime = new AVRealtime(appId, appKey); AVRealtime.WebSocketLog(Console.WriteLine); AVIMClient tom = await realtime.CreateClientAsync(clientId, tag : "Mobile", deviceId : "xxxbbbxxx"); tom.OnSessionClosed += Tom_OnSessionClosed; var conversation = await tom.GetConversationAsync("5b83a01a5b90c830ff80aea4"); var messages = await conversation.QueryMessageAsync(limit : 10); var afterMessages = await conversation.QueryMessageAfterAsync(messages.First()); var earliestMessages = await conversation.QueryMessageFromOldToNewAsync(); var nextPageMessages = await conversation.QueryMessageAfterAsync(earliestMessages.Last()); var earliestMessage = await conversation.QueryMessageFromOldToNewAsync(limit : 1); var latestMessage = await conversation.QueryMessageAsync(limit : 1); var messagesInInterval = await conversation.QueryMessageInIntervalAsync(earliestMessage.FirstOrDefault(), latestMessage.FirstOrDefault()); Console.ReadKey(); }
private async void Window_Loaded(object sender, RoutedEventArgs e) { //初始化登录用户信息 usernameheader.Text = AVUser.CurrentUser.Username[0].ToString(); username.Text = AVUser.CurrentUser.Username; useremail.Text = AVUser.CurrentUser.Email; //初始化即时通讯服务 try { Websockets.Net.WebsocketConnection.Link(); Realtime = new AVRealtime(new AVRealtime.Configuration { ApplicationId = "EthsHELtLfXL9XBqcFfzMrPO-gzGzoHsz", ApplicationKey = "xODJ808fAD8hpLHlblQhk0t1", //可以有 RTMRouter = new Uri("https://ethshelt.lc-cn-n1-shared.com"), OfflineMessageStrategy = AVRealtime.OfflineMessageStrategy.Default }); //注册自定义消息 Realtime.RegisterMessageType <NoticeMessage>(); //注册离线消息监听 Realtime.OnOfflineMessageReceived += OnOfflineMessageReceived; //登录Client User = await Realtime.CreateClientAsync(AVUser.CurrentUser); if (AVUser.CurrentUser.Get <string>("Friends") == "null") { //如果是第一次登录给用户添加Friends的ConversationId AVIMConversation Myfriends = await User.CreateConversationAsync(member : null, name : AVUser.CurrentUser.Username + "的小伙伴们", isUnique : false); AVUser.CurrentUser["Friends"] = Myfriends.ConversationId; await AVUser.CurrentUser.SaveAsync(); } //获取FriendsConversation FriendsConversation = await User.GetConversationAsync(AVUser.CurrentUser.Get <string>("Friends")); //上线后给所有的好友发送“我上线了”的notice NoticeMessage notice = new NoticeMessage { Notice = "我上线啦" }; await FriendsConversation.SendMessageAsync(notice); //绑定listbox数据 BindingFriendListSrouce(); //添加好友事件监听(好友邀请事件:同意,拒绝,好友邀请反馈事件:同意) User.OnInvited += OnInvited; //被删除事件监听 User.OnKicked += OnKicked; //好友操作事件监听(删除好友,好友邀请反馈事件:拒绝)==》TODO:未完成 //User.OnMembersLeft += OnMembersLeft; //User.OnMembersJoined += OnMembersJoined; User.OnMessageReceived += OnMessageReceived; } catch (Exception err) { MessageBox.Show(err.ToString()); } }
private async void btn_join_Click(object sender, EventArgs e) { var convId = this.txb_convId.Text.Trim(); this.conversation = await client.GetConversationAsync(convId, true); await client.JoinAsync(this.conversation); }
private async void btn_join_Click(object sender, EventArgs e) { var convId = this.txb_convId.Text.Trim(); this.conversation = await client.GetConversationAsync(convId, true); await client.JoinAsync(this.conversation); //AVIMClient avIMClient = await realtime.CreateClientAsync("junwu"); //avIMClient.OnMessageReceived += Client_OnMessageReceived; //AVIMConversation avIMConversation = await avIMClient.GetConversationAsync("5940e71b8fd9c5cf89fb91b7", true); //if (avIMConversation != null) //{ // await avIMConversation.JoinAsync(); //} }
public async Task OnExecuteAsync(CommandLineApplication app, IConsole console) { AVClient.Initialize(AppId, AppKey); AVRealtime.WebSocketLog((str) => { console.WriteLine(str); }); AVRealtime realtime = new AVRealtime(AppId, AppKey); AVIMClient client = await realtime.CreateClientAsync(ClientId); var conversation = await client.GetConversationAsync("5b83a01a5b90c830ff80aea4"); await conversation.SendImageAsync("http://ww3.sinaimg.cn/bmiddle/596b0666gw1ed70eavm5tg20bq06m7wi.gif", "Satomi_Ishihara", "萌妹子一枚", new Dictionary <string, object> { { "actress", "石原里美" } }); new RealtimeCommand().OnExecute(app, console); }
//添加好友事件监听(好友邀请事件:同意,拒绝,好友邀请反馈事件:同意) private void OnInvited(object sender, AVIMOnInvitedEventArgs e) { //排除自身引发的事件 if (e.InvitedBy != AVUser.CurrentUser.ObjectId) { App.Current.Dispatcher.Invoke((Action)(async() => { AVIMConversation InvitedConversation = await User.GetConversationAsync(e.ConversationId); AVUser InvitedUser = await AVUser.Query.GetAsync(e.InvitedBy); //好友邀请事件 if (InvitedConversation.IsUnique) { //同意 if (MessageBox.Show(InvitedUser.Username + "请求添加您为好友,是否通过?", "添加好友请求", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { //将对方加入自己的FriendsConversation await User.InviteAsync(FriendsConversation, e.InvitedBy); //重新获取FriendsConversation==》不必要 FriendsConversation = await User.GetConversationAsync(AVUser.CurrentUser.Get <string>("Friends")); //重新绑定listbox数据 BindingFriendListSrouce(e.InvitedBy); } //拒绝 else { //拒绝即为删除邀请者创建的Conversation try { List <string> members = new List <string>(); members.Add(AVUser.CurrentUser.ObjectId); members.Add(InvitedUser.ObjectId); await(await AVObject.GetQuery("_Conversation").WhereEqualTo("m", members).FirstAsync()).DeleteAsync(); } catch { try { List <string> members = new List <string>(); members.Add(InvitedUser.ObjectId); members.Add(AVUser.CurrentUser.ObjectId); await(await AVObject.GetQuery("_Conversation").WhereEqualTo("m", members).FirstAsync()).DeleteAsync(); } catch { MessageBox.Show("给舔狗一条活路吧"); } } finally { new Tip("提醒", "已拒绝 " + InvitedUser.Username + "的好友邀请", 3); } } } //好友邀请反馈事件:同意 if (!InvitedConversation.IsUnique) { //将对方加入自己的FriendsConversation if (!FriendsConversation.MemberIds.Contains(e.InvitedBy)) { new Tip("提醒", "已成功添加 " + InvitedUser.Username); await User.InviteAsync(FriendsConversation, e.InvitedBy); //重新获取FriendsConversation==》不必要 FriendsConversation = await User.GetConversationAsync(AVUser.CurrentUser.Get <string>("Friends")); //重新绑定listbox数据 BindingFriendListSrouce(e.InvitedBy); } } })); } }