static void Main(string[] args) { ClassManager.Register(typeof(User), "User"); HproseHttpClient client = new HproseHttpClient("http://localhost:2012/"); List<User> users = new List<User>(); User user1 = new User(); user1.name = "李雷"; user1.age = 32; user1.male = true; user1.friends = new List<User>(); User user2 = new User(); user2.name = "韩梅梅"; user2.age = 31; user2.male = false; user2.friends = new List<User>(); user1.friends.Add(user2); user2.friends.Add(user1); users.Add(user1); users.Add(user2); Func<List<User>, List<User>> SendUsers = userList => client.Invoke<List<User>>("sendUsers", new object[] { userList }); MemoryStream stream = (MemoryStream)HproseFormatter.Serialize(SendUsers(users)); Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray())); Console.ReadLine(); }
static void Main(string[] args) { HproseClassManager.Register(typeof(User), "User"); client = new HproseHttpClient("http://localhost:2012/"); List <User> users = new List <User>(); User user1 = new User(); user1.name = "李雷"; user1.age = 32; user1.male = true; user1.friends = new List <User>(); User user2 = new User(); user2.name = "韩梅梅"; user2.age = 31; user2.male = false; user2.friends = new List <User>(); user1.friends.Add(user2); user2.friends.Add(user1); users.Add(user1); users.Add(user2); Func <List <User>, List <User> > SendUsers = userList => client.Invoke <List <User> >("sendUsers", new object[] { userList }); Hello(); MemoryStream stream = (MemoryStream)HproseFormatter.Serialize(SendUsers(users)); Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray())); Console.ReadLine(); }
private void Button_Click_1(object sender, RoutedEventArgs e) { //HproseClient.SynchronizationContext = SynchronizationContext.Current; HproseHttpClient client = new HproseHttpClient("http://localhost:2012/"); ISendUsers proxyObject = client.UseService <ISendUsers>(); var SendUsers = client.GetFunc <List <User>, List <User> >("sendUsers"); var AsyncSendUsers = client.GetAsyncAction <List <User>, HproseCallback1 <List <User> > >("sendUsers"); List <User> users = new List <User>(); User user1 = new User(); user1.name = "李雷"; user1.age = 32; user1.male = true; user1.friends = new List <User>(); User user2 = new User(); user2.name = "韩梅梅"; user2.age = 31; user2.male = false; user2.friends = new List <User>(); user1.friends.Add(user2); user2.friends.Add(user1); users.Add(user1); users.Add(user2); MemoryStream stream = HproseFormatter.Serialize(users); byte[] bytes = stream.ToArray(); System.Windows.Browser.HtmlPage.Window.Eval("alert('" + UTF8Encoding.UTF8.GetString(bytes, 0, bytes.Length) + "')"); HproseCallback1 <List <User> > callback = result => { MemoryStream s = HproseFormatter.Serialize(result); byte[] b = s.ToArray(); System.Windows.Browser.HtmlPage.Window.Eval("alert('" + UTF8Encoding.UTF8.GetString(b, 0, b.Length) + "')"); }; proxyObject.SendUsers(users, callback); AsyncSendUsers(users, callback); new Thread(() => { byte[] b = proxyObject.SendUsersRaw(users); Dispatcher.BeginInvoke(() => { System.Windows.Browser.HtmlPage.Window.Eval("alert('" + UTF8Encoding.UTF8.GetString(b, 0, b.Length) + "')"); }); MemoryStream ss = HproseFormatter.Serialize(SendUsers(users)); byte[] bb = ss.ToArray(); Dispatcher.BeginInvoke(() => { System.Windows.Browser.HtmlPage.Window.Eval("alert('" + UTF8Encoding.UTF8.GetString(bb, 0, bb.Length) + "')"); }); string result = proxyObject.Hello("World"); Dispatcher.BeginInvoke(() => { System.Windows.Browser.HtmlPage.Window.Eval("alert('" + result + "')"); }); }).Start(); }
static void Main(string[] args) { HproseHttpClient client = new HproseHttpClient(" http://localhost:2012/"); client.KeepAlive = true; Console.WriteLine(client.Invoke("Hello", new Object[] { "bbbb" })); Console.WriteLine(client.Invoke("hello", new Object[] { "cccc" })); Console.ReadLine(); }
private void Button_Click_1(object sender, RoutedEventArgs e) { //HproseClient.SynchronizationContext = SynchronizationContext.Current; HproseHttpClient client = new HproseHttpClient("http://localhost:2012/"); ISendUsers proxyObject = client.UseService<ISendUsers>(); var SendUsers = client.GetFunc<List<User>, List<User>>("sendUsers"); var AsyncSendUsers = client.GetAsyncAction<List<User>, HproseCallback1<List<User>>>("sendUsers"); List<User> users = new List<User>(); User user1 = new User(); user1.name = "李雷"; user1.age = 32; user1.male = true; user1.friends = new List<User>(); User user2 = new User(); user2.name = "韩梅梅"; user2.age = 31; user2.male = false; user2.friends = new List<User>(); user1.friends.Add(user2); user2.friends.Add(user1); users.Add(user1); users.Add(user2); MemoryStream stream = HproseFormatter.Serialize(users); byte[] bytes = stream.ToArray(); System.Windows.Browser.HtmlPage.Window.Eval("alert('" + UTF8Encoding.UTF8.GetString(bytes, 0, bytes.Length) + "')"); HproseCallback1<List<User>> callback = result => { MemoryStream s = HproseFormatter.Serialize(result); byte[] b = s.ToArray(); System.Windows.Browser.HtmlPage.Window.Eval("alert('" + UTF8Encoding.UTF8.GetString(b, 0, b.Length) + "')"); }; proxyObject.SendUsers(users, callback); AsyncSendUsers(users, callback); new Thread(() => { byte[] b = proxyObject.SendUsersRaw(users); Dispatcher.BeginInvoke(() => { System.Windows.Browser.HtmlPage.Window.Eval("alert('" + UTF8Encoding.UTF8.GetString(b, 0, b.Length) + "')"); }); MemoryStream ss = HproseFormatter.Serialize(SendUsers(users)); byte[] bb = ss.ToArray(); Dispatcher.BeginInvoke(() => { System.Windows.Browser.HtmlPage.Window.Eval("alert('" + UTF8Encoding.UTF8.GetString(bb, 0, bb.Length) + "')"); }); string result = proxyObject.Hello("World"); Dispatcher.BeginInvoke(() => { System.Windows.Browser.HtmlPage.Window.Eval("alert('" + result + "')"); }); }).Start(); }
public T UseService <T>() { var consulDiscoveryService = new ConsulDiscoveryService(new ServiceRegistryAddress { RegistryHost = "127.0.0.1", RegistryPort = 8500 }); var url = consulDiscoveryService.GetRpcService(_serviceName); var client = new HproseHttpClient(url); return(client.UseService <T>()); }
/// <summary> /// 直接使用服务地址访问 /// </summary> /// <param name="serviceHost"></param> /// <param name="servicePort"></param> /// <param name="onError"></param> public RpcHttpClient(string serviceHost, int servicePort, Action <string, Exception> onError = null) { _client = new HproseHttpClient($"http://{serviceHost}:{servicePort}/"); if (onError != null) { _client.OnError += (name, e) => { onError(name, e); }; } }
static void Main(string[] args) { HproseClassManager.Register(typeof(User), "User"); client = new HproseHttpClient(" http://localhost:2012/"); client.KeepAlive = true; /* * List<User> users = new List<User>(); * User user1 = new User(); * user1.name = "李雷"; * user1.age = 32; * user1.male = true; * user1.friends = new List<User>(); * User user2 = new User(); * user2.name = "韩梅梅"; * user2.age = 31; * user2.male = false; * user2.friends = new List<User>(); * user1.friends.Add(user2); * user2.friends.Add(user1); * users.Add(user1); * users.Add(user2); * Func<List<User>, List<User>> SendUsers = userList => client.Invoke<List<User>>("sendUsers", new object[] { userList }); * Hello(); * MemoryStream stream = (MemoryStream)HproseFormatter.Serialize(SendUsers(users)); * Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray())); */ Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); var ts = new List <Thread>(); for (int i = 0; i < 200; i++) { ts.Add(new Thread(() => { for (int j = 1; j < 10; j++) { client.Invoke <String>("hello", new Object[] { "abc123" + j }); } })); } ts.ForEach(a => a.Start()); ts.ForEach(a => a.Join()); stopwatch.Stop(); Console.WriteLine(stopwatch.ElapsedMilliseconds); Console.WriteLine(stopwatch.ElapsedMilliseconds / 2000.0); Console.ReadLine(); }
private void Http_Click(object sender, RoutedEventArgs e) { try { HproseHttpClient httpclient = new HproseHttpClient(Queryservice.GetHttpUri()); httpclient.KeepAlive = true; httpclient.KeepAliveTimeout = 300; var jsonvar = httpclient.Invoke <string>("Expjson", new object[] { }); byte[] bytevar = httpclient.Invoke <byte[]>("Encoder", new object[] { jsonvar }); } catch (Exception ex) { throw; } // byte[] bytevar = httpclient.Invoke<byte[]>("Encoder", new object[] { jsonvar }); }
/// <summary> /// 从Consul注册中心去发现服务 /// </summary> /// <param name="serviceName"></param> /// <param name="serviceRegistryAddress"></param> /// <param name="loadBalancer"></param> /// <param name="onError"></param> public RpcHttpClient(string serviceName, ServiceRegistryAddress serviceRegistryAddress, ILoadBalancer loadBalancer = null, Action <string, Exception> onError = null) { var consulDiscoveryService = new ConsulDiscoveryService(serviceRegistryAddress, loadBalancer); var service = consulDiscoveryService.GetRpcService(serviceName); if (service == null) { throw new ServiceDiscoveryException($"未发现可用的【{serviceName}】 服务"); } _client = new HproseHttpClient(service.ToString()); if (onError != null) { _client.OnError += (name, e) => { onError(name, e); }; } }
public Data_Sync(string url) { hpclient = new HproseHttpClient(url); hpclient.KeepAlive = true; hpclient.Timeout = 300000; }