Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
        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>());
        }
Esempio n. 7
0
 /// <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);
         };
     }
 }
Esempio n. 8
0
        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();
        }
Esempio n. 9
0
        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 });
        }
Esempio n. 10
0
        /// <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);
                };
            }
        }
Esempio n. 11
0
 public Data_Sync(string url)
 {
     hpclient           = new HproseHttpClient(url);
     hpclient.KeepAlive = true;
     hpclient.Timeout   = 300000;
 }