public void InvokeWithStateCopiesStateToHubProxy() { var hubResult = new HubResult { State = new Dictionary<string, JToken> { { "state", JToken.FromObject(1) } } }; var connection = new Mock<IHubConnection>(); connection.Setup(m => m.RegisterCallback(It.IsAny<Action<HubResult>>())) .Callback<Action<HubResult>>(callback => { callback(hubResult); }); connection.Setup(m => m.Send(It.IsAny<string>())) .Returns(TaskAsyncHelper.Empty); connection.SetupGet(x => x.JsonSerializer).Returns(new JsonSerializer()); var hubProxy = new HubProxy(connection.Object, "foo"); hubProxy.Invoke("Anything").Wait(); Assert.Equal(1, hubProxy["state"]); }
/// <summary>離開群組</summary> /// <param name="groupName">群組名稱</param> public void LeaveGroup(string groupName) { List <object> args = new List <object> { groupName }; string cmdCode = RecordMethodQueue("LeaveGroup", args); if (CurrState == ConnectionState.Connected) { HubProxy.Invoke("LeaveGroup", groupName, cmdCode); } }
protected async Task <T> ProxyInvoke <T>(string name, params object[] args) { try { return(await HubProxy.Invoke <T>(name, args)); } catch (Exception ex) { OnHubProxyInvokeException(ex); return(default(T)); } }
public async void Connect() { Connection = new HubConnection(ServerUrl); //to access autorized hub and map logged user u need to pass token Connection.Headers.Add("Authorization", String.Format("Bearer {0}", Properties.Settings.Default.access_token)); //THIS IS WHERE YOU ADD YOUR ACCESS TOKEN MENTIONED ABOVE HubProxy = Connection.CreateHubProxy("SignalRTestHub"); //hub name AnotherHubProxy = Connection.CreateHubProxy("AnotherSignalRTestHub"); await Connection.Start(); var myConnectedModelString = await HubProxy.Invoke <string>("getCurrentConnectedModel");//invoke to get my connection id and my logged in email this.displayConnectedUsers(myConnectedModelString); HubProxy.On("sayHello", (message) => this.Invoke((Action)(() => { Console.WriteLine(Convert.ToString(message)); } ) ) ); HubProxy.On("anotherSayHello", (message) => this.Invoke((Action)(() => { Console.WriteLine(Convert.ToString(message)); } ) ) ); HubProxy.On("allConnectedUsers", (message) => this.Invoke((Action)(() => { Console.WriteLine(Convert.ToString(message)); this.displayConnectedUsers(Convert.ToString(message)); } ) ) ); HubProxy.On("listenMessage", (message) => this.Invoke((Action)(() => { Console.WriteLine(Convert.ToString(message)); txtRecieveMessage.Text = Convert.ToString(message); } ) ) ); }
public void UpdateMessage(int index, MessageInfo oldMessage) { if (index != -1) { MessageInfo newMessage = new MessageInfo(); newMessage.MessageName = "newName"; newMessage.MessageContent = "newContent"; HubProxy.Invoke("MessageUpdate", oldMessage.MessageName, oldMessage.MessageContent, newMessage.MessageName, newMessage.MessageContent); Member.MessageCollection.RemoveAt(index); Member.MessageCollection.Insert(index, newMessage); } }
private void button1_Click(object sender, EventArgs e) { Student stu = new Student { Name = txtName.Text, Age = Convert.ToInt32(txtAge.Text), Id = txtId.Text }; HubProxy.Invoke("Send", stu); txtName.Text = String.Empty; txtName.Focus(); }
public async void PostNotification(NotificationInfo notificationInfo) { await WaitConnectFalse(); if (notificationInfo != null) { notificationInfo.Source = notificationInfo.Source == null ? Station : notificationInfo.Source; } notificationInfo.dateSend = DateTime.Now; await HubProxy.Invoke("OnNewNotification", notificationInfo); }
public static void GetLogFileNames(List <SSO.IntelMap.Models.GroupChannelName> data) { var catcher = new List <SSO.IntelMap.Models.GroupChannelName>(); var dInfo = new DirectoryInfo(Path); data.ForEach(group => { group.Channels.ForEach(channel => { var fileInfo = dInfo.EnumerateFiles(string.Concat(channel, "*")) .OrderByDescending(o => o.LastWriteTimeUtc).FirstOrDefault(); if (fileInfo != null) { var flag1 = false; Console.WriteLine("Listening to channel " + channel); catcher.Add(group); LogFileModel model = LogFileHelper.ParseLogFile(fileInfo.FullName, group.Group); DateTime createdAt = model.CreatedAt; if (model.LogLines.Count > 0) { createdAt = Enumerable.Last <LogLine>(model.LogLines).LogDateTime; } if (!ReadFromTimes.ContainsKey(group.Group)) { flag1 = false; } else { flag1 = ReadFromTimes.FirstOrDefault().Value < createdAt; } if (flag1) { ReadFromTimes.Remove(group.Group); } if (!ReadFromTimes.ContainsKey(group.Group)) { ReadFromTimes.Add(group.Group, createdAt); } } }); }); catcher = catcher.Distinct().ToList(); catcher.ForEach(group => { HubProxy.Invoke("joinGroup", group.Group); }); Console.WriteLine(); LogFileNames = catcher; }
private async void buttonapp_Click(object sender, EventArgs e) { try { var appver = textBoxappver.Text; var ret = new VaultAppModel { AppId = 1, Guid = textBoxguid.Text, IsUpdate = true, Version = appver }; //try //{ // var di = new DirectoryInfo(textBoxapppath.Text); // var files = di.GetFiles(); // foreach (FileInfo fileInfo in files) // { // if (fileInfo.Name.Contains(textBoxappver.Text)) // { // var apppath = Path.Combine(textBoxapppath.Text, string.Format("1-{0}.zip", appver)); // try // { // ret.ZipFile = File.ReadAllBytes(apppath); // } // catch (Exception ex) // { // richTextBoxlog.AppendText(Environment.NewLine + apppath + ex.Message); // return; // } // break; // } // } //} //catch (Exception ex) //{ // richTextBoxlog.AppendText(Environment.NewLine + string.Format("app release error:{0},{1},{2},{3}", // textBoxappver.Text, textBoxweburl.Text, textBoxapppath.Text, ex.Message)); // return; //} richTextBoxlog.AppendText(Environment.NewLine + "PushNewApp. " + " before invoke."); await HubProxy.Invoke("PushNewApp", ret); richTextBoxlog.AppendText(Environment.NewLine + "PushNewApp." + " ok."); } catch (Exception ex) { richTextBoxlog.AppendText(Environment.NewLine + "PushNewApp." + ex.Message); } }
public async Task <ChatResult <List <MessageInfo> > > SearchMessage(string receiverId, DateTime fromDate, DateTime toDate, int messageType) { try { ChatResult <List <MessageInfo> > result = await HubProxy.Invoke <ChatResult <List <MessageInfo> > >(ServerEventNames.SearchMessage, receiverId, fromDate, toDate, messageType); return(result); } catch (Exception ex) { return(new ChatResult <List <MessageInfo> >(false, ex.ToString(), null)); } }
public async Task <ChatResult> ChangeCustomerName(string newCustomerName) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.ChangeCustomerName, newCustomerName); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
public async Task <ChatResult> RemoveCustomerFromGroup(string customerId, string groupId) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.RemoveCustomerFromGroup, customerId, groupId); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
public async Task <ChatResult> InviteToGroupRequest(string customerId, string groupId) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.InviteToGroupRequest, customerId, groupId); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
public async Task <ChatResult> InviteToGroupRespond(string requestId, bool agree) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.InviteToGroupRespond, requestId, agree); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
public async Task <ChatResult> ChangeGroupDescription(string groupId, string description) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.ChangeGroupDescription, groupId, description); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
public async Task <ChatResult> ChangeGroupPrivate(string groupId, bool isPrivate) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.ChangeGroupPrivacy, groupId, isPrivate); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
public async Task <ChatResult <List <CustomerInfo> > > SearchCustomer(string customerNameKeyword) { try { ChatResult <List <CustomerInfo> > result = await HubProxy.Invoke <ChatResult <List <CustomerInfo> > >(ServerEventNames.SearchCustomer, customerNameKeyword); return(result); } catch (Exception ex) { return(ChatResult <List <CustomerInfo> > .CreateInstance(false, ex.Message, null)); } }
public async Task ConnectToServer() { var hubConnection = new HubConnection(ServerUrl); HubProxy = hubConnection.CreateHubProxy(ServerHubName); await hubConnection.Start(); await HubProxy.Invoke(ConnectMethod, new ConnectDeviceData() { DeviceName = DeviceName, SecretKey = SecretKey }); }
public async Task <ChatResult> LeaveGroup(string groupId) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.LeaveGroup, groupId); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
public void GetInventory() { HubProxy.Invoke <ChatResult>(ServerEventNames.GetInventory).ContinueWith(task => { if (task.IsFaulted) { } else { ChatResult result = task.Result; } }); }
public async Task CallClientGroupsAsync(string[] groups, string method, params object[] args) { try { ThrowExceptionIfDisposed(); await HubProxy.Invoke("CallClientGroupsAsync", groups, method, args); } catch (Exception exp) { MessageBox.Show(exp.Message, exp.Source); } }
private async void HubConnectAsync() { Connection = new HubConnection(Strings.ServerUri); Connection.Closed += Connection_Closed; HubProxy = Connection.CreateHubProxy("GameHub"); HubProxy.On("RefreshGameInfo", () => this.Dispatcher.Invoke(RefreshGameInfo)); HubProxy.On("OtherPlayerLeft", () => this.Dispatcher.Invoke(OtherPlayerLeft)); await Connection.Start(); HubProxy.Invoke("Update"); //TODO: We need this shiet }
public async Task <ChatResult> DeleteMessage(string messageId) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.DeleteMessage, messageId); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
public async Task <ChatResult <List <GroupInfo> > > SearchGroup(string groupName) { try { ChatResult <List <GroupInfo> > result = await HubProxy.Invoke <ChatResult <List <GroupInfo> > >(ServerEventNames.SearchGroup, groupName); return(result); } catch (Exception ex) { return(ChatResult <List <GroupInfo> > .CreateInstance(false, ex.Message, null)); } }
public async Task <ChatResult> UnFriend(string friendId) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.UnFriend, friendId); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
private void ButtonSend_Click(object sender, EventArgs e) { var toId = (string)lblModel.Tag; toId = (toId == "ALL") ? string.Empty : toId; imcp = new IMCommParamMessage() { msgType = msgType.Text, fromConnId = imModel.ConnId, toConnId = toId, message = TextBoxMessage.Text, isSuccess = true }; HubProxy.Invoke("SendMessage", JsonConvert.SerializeObject(imcp)); TextBoxMessage.Text = String.Empty; TextBoxMessage.Focus(); }
public async Task <ChatResult> BroadcastMessage(MessageInfo msg) { try { ChatResult result = await HubProxy.Invoke <ChatResult>(ServerEventNames.BroadcastMessage, msg); return(result); } catch (Exception ex) { return(new ChatResult(false, ex.Message)); } }
//#region 获得组织结构 Modefing... //private void setGroups(string jsonString) { // //MessageBox.Show(jsonString); // List<GroupModel> Groups = JsonConvert.DeserializeObject<List<GroupModel>>(jsonString); // this.Invoke((Action)(() => { // RichTextBoxConsole.AppendText(string.Format("{0}: {1}" + Environment.NewLine, "Server-Groups", Groups.Count)); // //生成MD5,与jsonString 保存到配置文件 // treeView1.Nodes.Clear(); // TreeNode tn = json2TreeNode(jsonString); // foreach (TreeNode n in tn.Nodes) // treeView1.Nodes.Add(n); // })); //} //private TreeNode json2TreeNode(string jsonstring) { // OrganizationalNode tn = JsonConvert.DeserializeObject<OrganizationalNode>(jsonstring); // var user = tn.Tag.GetType().Equals(typeof(UserModel)) ? tn.Tag as UserModel : null; // TreeNode returnNode = new TreeNode() { // Name = tn.Id.ToString() + tn.Name, // Text = tn.Name, // ToolTipText = tn.Title, // Tag = tn.Tag, // StateImageKey = (user == null ? string.Empty : user.conntionId), // ForeColor = (user == null ? System.Drawing.Color.Black : System.Drawing.Color.Green) // }; // if (!(tn.Nodes is null) && tn.Nodes.Count > 0) { // foreach(OrganizationalNode on in tn.Nodes) // returnNode.Nodes.Add(getNode(on)); // } // return returnNode; //} //private TreeNode getNode(OrganizationalNode on) { // var user = on.Tag.GetType().Equals(typeof(UserModel)) ? on.Tag as UserModel : null; // TreeNode returnNode = new TreeNode() { // Name = on.Id.ToString() + on.Name, // Text = on.Name, // ToolTipText = on.Title, // Tag = on.Tag, // StateImageKey = (user == null ? string.Empty : user.conntionId), // ForeColor = (user == null ? System.Drawing.Color.Black : System.Drawing.Color.Green) // }; // if (!(on.Nodes is null) && on.Nodes.Count > 0) { // foreach (OrganizationalNode on1 in on.Nodes) // returnNode.Nodes.Add(getNode(on1)); // } // return returnNode; //} //#endregion //private void setUserState(string jsonstring) { // UserModel user = JsonConvert.DeserializeObject<UserModel>(jsonstring); // var userNodes = treeView1.Nodes.Find(user.userId.ToString() + user.userName, true); // if (userNodes != null && userNodes.Length > 0) { // var userNode = userNodes[0]; // userNode.ForeColor = System.Drawing.Color.Green; // userNode.StateImageKey = user.conntionId; // } //} private void Connection_Succeed() { imModel.ConnId = Connection.ConnectionId; this.Invoke((Action)(() => { treeView1.Nodes.Clear(); treeView2.Nodes.Clear(); treeView1.Nodes.Add("ALL", "ALL"); treeView2.Nodes.Add("ALL", "ALL"); })); Services.Clear(); Clients.Clear(); HubProxy.Invoke("GetOnlineServices"); HubProxy.Invoke("GetOnlineClients"); }
public async Task CallByTypeClientsAsync(List <string> usernames, string type, string method, string[] paramTypes, params object[] args) { try { ThrowExceptionIfDisposed(); await HubProxy.Invoke("CallByTypeClientsAsync", usernames, type, method, paramTypes, args); } catch (Exception exp) { MessageBox.Show(exp.Message, exp.Source); } }
public Task SendData(string data) { return(HubProxy.Invoke("addMessage", new Message { Sender = User, Text = data, Date = DateTime.Now }) .ContinueWith(task => { if (task.IsFaulted) { WriteLine($"Exception:{task.Exception.InnerException.Message}"); } })); }
private void FieldButtonClick(object sender, RoutedEventArgs e) { Button button = sender as Button; var buttonPosition = button.Name.Substring(button.Name.IndexOf("button") + "button".Length + 1); if (this.gameMode == GameMode.Online) { if (this.gameData.GameState == "FirstPlayerTurn" || this.gameData.GameState == "SecondPlayerTurn") { HttpClient _httpClient = new HttpClient(); var bearer = "Bearer " + loginData.Access_Token; var content = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("id", gameData.Id.ToString()), new KeyValuePair <string, string>("Position", buttonPosition), }); _httpClient.DefaultRequestHeaders.Add("Authorization", bearer); var response = _httpClient.PostAsync(Endpoint.MakeMove, content).Result; if (response.IsSuccessStatusCode) { button.Content = this.gameData.GameState == "FirstPlayerTurn" ? 'O' : 'X'; HubProxy.Invoke("Update"); } else { MessageBox.Show(response.Content.ReadAsStringAsync().Result); } } } else if (this.gameMode == GameMode.Singleplayer) { if (this.gameData.EnumGameState == GameState.FirstPlayer) { SinglePlayerMove(buttonPosition, button); AIMove(buttonPosition, button); } } else if (this.gameMode == GameMode.Multiplayer) { if (this.gameData.EnumGameState == GameState.FirstPlayer || this.gameData.EnumGameState == GameState.SecondPlayer) { MultiPlayerMove(buttonPosition, button); } } }
public void InvokeWithErrorInHubResultReturnsFaultedTask() { var result = new HubResult<object> { Error = "This in an error" }; var connection = new Mock<SignalR.Client.IConnection>(); connection.Setup(m => m.Send<HubResult<object>>(It.IsAny<string>())) .Returns(TaskAsyncHelper.FromResult(result)); var hubProxy = new HubProxy(connection.Object, "foo"); AssertAggregateException(() => hubProxy.Invoke("Invoke").Wait(), "This in an error"); }
public void InvokeReturnsHubsResult() { var hubResult = new HubResult<object> { Result = "Something" }; var connection = new Mock<SignalR.Client.IConnection>(); connection.Setup(m => m.Send<HubResult<object>>(It.IsAny<string>())) .Returns(TaskAsyncHelper.FromResult(hubResult)); var hubProxy = new HubProxy(connection.Object, "foo"); var result = hubProxy.Invoke<object>("Anything").Result; Assert.Equal(result, "Something"); }
public void InvokeWithStateCopiesStateToHubProxy() { var result = new HubResult<object> { State = new Dictionary<string, object> { { "state", 1 } } }; var connection = new Mock<SignalR.Client.IConnection>(); connection.Setup(m => m.Send<HubResult<object>>(It.IsAny<string>())) .Returns(TaskAsyncHelper.FromResult(result)); var hubProxy = new HubProxy(connection.Object, "foo"); hubProxy.Invoke("Anything").Wait(); Assert.Equal(1, hubProxy["state"]); }
public void InvokeReturnsHubsResult() { var hubResult = new HubResult { Result = "Something" }; var connection = new Mock<SignalR.Client.Hubs.IHubConnection>(); connection.Setup(m => m.RegisterCallback(It.IsAny<Action<HubResult>>())) .Callback<Action<HubResult>>(callback => { callback(hubResult); }); connection.Setup(m => m.Send(It.IsAny<string>())) .Returns(TaskAsyncHelper.Empty); var hubProxy = new HubProxy(connection.Object, "foo"); var result = hubProxy.Invoke<object>("Anything").Result; Assert.Equal(result, "Something"); }
public void InvokeWithErrorInHubResultReturnsFaultedTask() { var hubResult = new HubResult { Error = "This in an error" }; var connection = new Mock<IHubConnection>(); connection.Setup(m => m.RegisterCallback(It.IsAny<Action<HubResult>>())) .Callback<Action<HubResult>>(callback => { callback(hubResult); }); connection.Setup(m => m.Send(It.IsAny<string>())) .Returns(TaskAsyncHelper.Empty); connection.SetupGet(x => x.JsonSerializer).Returns(new JsonSerializer()); var hubProxy = new HubProxy(connection.Object, "foo"); TestUtilities.AssertAggregateException(() => hubProxy.Invoke("Invoke").Wait(), "This in an error"); }
public void FailedHubCallbackDueToReconnectFollowedByInvoke() { // Arrange var testTcs = new TaskCompletionSource<object>(); var crashTcs = new TaskCompletionSource<object>(); var connection = new HubConnection("http://test"); var transport = new Mock<IClientTransport>(); transport.Setup(t => t.Negotiate(connection, /* connectionData: */ It.IsAny<string>())) .Returns(TaskAsyncHelper.FromResult(new NegotiationResponse { ProtocolVersion = connection.Protocol.ToString(), ConnectionId = "Something", DisconnectTimeout = 120 })); transport.Setup(t => t.Start(connection, /* connectionData: */ It.IsAny<string>(), /* disconnectToken: */ It.IsAny<CancellationToken>())) .Returns(TaskAsyncHelper.Empty); transport.Setup(t => t.Send(connection, /* data: */ It.Is<string>(s => s.IndexOf("crash") >= 0), /* connectionData: */ It.IsAny<string>())) .Returns(crashTcs.Task) // We want this task to never complete as the call to EnsureReconnecting will do it for us .Callback(() => { Task.Run(() => { try { // EnsureReconnecting will change the state and ultimately clear the pending invocation callbacks connection.EnsureReconnecting(); testTcs.SetResult(null); } catch (Exception ex) { testTcs.SetException(ex); } }); }); var proxy = new HubProxy(connection, "test"); // Act connection.Start(transport.Object).Wait(); var crashTask = proxy.Invoke("crash") .ContinueWith(t => proxy.Invoke("test"), TaskContinuationOptions.ExecuteSynchronously); // We need to ensure this executes sync so we're on the same stack // Assert Assert.Throws(typeof(AggregateException), () => crashTask.Wait()); Assert.DoesNotThrow(() => testTcs.Task.Wait()); }
public void HubCallbackClearedOnFailedInvocation() { var connection = new Mock<HubConnection>("http://foo"); var tcs = new TaskCompletionSource<object>(); tcs.TrySetCanceled(); connection.Setup(c => c.Send(It.IsAny<string>())).Returns(tcs.Task); var hubProxy = new HubProxy(connection.Object, "foo"); var aggEx = Assert.Throws<AggregateException>(() => { hubProxy.Invoke("foo", "arg1").Wait(); }); var ex = aggEx.Unwrap(); Assert.IsType(typeof(TaskCanceledException), ex); Assert.Equal(connection.Object._callbacks.Count, 0); }
public void InvokeWorksWithNullArgument() { var connection = new Mock<IHubConnection>(); connection.Setup(c => c.RegisterCallback(It.IsAny<Action<HubResult>>())) .Callback<Action<HubResult>>(callback => { callback(new HubResult()); }); connection.Setup(m => m.Send(It.IsAny<string>())).Returns(TaskAsyncHelper.Empty); connection.SetupGet(x => x.JsonSerializer).Returns(new JsonSerializer()); var hubProxy = new HubProxy(connection.Object, "foo"); var o = new NullInvokeTest { Name = null, Number = 42, Strings = new[] { "Kazimierz", null, "Tetmajer" } }; hubProxy.Invoke("method", 1, null, new[] { "a", "b" }, o); connection.Verify( c => c.Send(@"{""I"":null,""H"":""foo"",""M"":""method""," + @"""A"":[1,null,[""a"",""b""],{""Name"":null,""Number"":42,""Strings"":[""Kazimierz"",null,""Tetmajer""]}]}"), Times.Once()); }