剑轩

c# webservice二:基本分布式访问

电脑版发表于:2019/1/23 14:53


使用webservice接口有个好处就是可以分布式访问。


例如我们在玩游戏的时候先要选择一个区,然后在进入游戏。这样是因为如果所有的玩家都在一个区

服务器都是同一个的话,服务器压力很很有,服务器也有负载极限的。所以可以先选择一个区,让玩家

数据存储以及通信可以在不同的服务器进行。


一:创建两个服务模拟不同的服务地址


服务1:

    public class WebService1 : System.Web.Services.WebService
    {
        [WebMethod]
        public string GetUser()
        {
            return "重庆1区"+"hello webservice";
        }
    }

服务2

    public class WebService2 : System.Web.Services.WebService
    {

        [WebMethod]
        public string GetUser()
        {
            return "上海1区" + "hello webservice";
        }

    }



二:用一个下拉列表框,来模拟选区


先创建一个存放键值对的model

    public class KeyValueModel
    {
        public string key { get; set; }
        public string value { get; set; }
    }

组装好数据后给列表框提供好数据源

  List<KeyValueModel> kvlist = new List<KeyValueModel>();
            kvlist.Add(new KeyValueModel() { key = "重庆1区", value = "http://localhost:23600/WebService1.asmx" });
            kvlist.Add(new KeyValueModel() { key = "重庆2区", value = "" });
            kvlist.Add(new KeyValueModel() { key = "上海1区", value = "http://localhost:23600/WebService2.asmx" });
            kvlist.Add(new KeyValueModel() { key = "北京1区", value = "" });

            comboBox1.DisplayMember = "key";
            comboBox1.ValueMember = "value";

            comboBox1.DataSource = kvlist;



三:实现选择不同的区,调用不同的接口


其实在实例化的时候可以传递两个参数,一个是webservice服务的配置节点,第二个就是地址!

 private void button1_Click(object sender, EventArgs e)
        {
            //获取不同区对应的不同地址
            string remoteurl = comboBox1.SelectedValue.ToString();

            WebService1.WebService1SoapClient client = new WebService1.WebService1SoapClient("WebService1Soap", remoteurl);
            string user = client.GetUser();
            MessageBox.Show(user);
        }

当选择重庆1区的时候 : 就是访问重庆1区的接口

当选择上海1区的时候 : 就是访问上海1区的接口





关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢