C#服务端的微信小游戏——多人在线角色扮演(九)

C#服务端的微信小游戏——多人在线角色扮演(九)

微信小程序是个不错的平台,用来做手机小游戏真的很好,简单、通用性好、方便传播。
——茂叔

好了,现在我们开始做客户端了,客户端选择微信小程序,所以我们要下载微信Web开发者工具
所以为什么说腾讯只会抄袭呢,一旦自己搞点东西,连取个名字都不会了,这要是洋人搞的,保不齐取个什么高大上的名字呢……例如TCStadio、TCWARESHOP之类的,一看就觉得高大上。

好吧,中国人就是低调,总之你还没安装的话赶紧安装吧。

申请小程序的过程很简单,自己去微信公众平台去查,我这里就不啰嗦了。

重点就是要记住你的AppIDAppSecret这两个东西。

然后,客户端第一件要做的事情,那就是与服务器建立网络连接,根据腾讯公司给出的文档,wss协议的WebSocket是唯一的选择了。

建立连接

服务端

那么,首先是要在服务器端提供网络连接服务。
因为websocket是基于http协议的,所以,在.Net里面还是使用HttpListener来侦听。
侦听器开始运行了以后,就可以使用HttpListener.GetContext,来接受客户端的连接,这是个同步的方法,会阻断当前的线程,直到有用户连接上来为止。

有客户端连接上来了,就可以HttpListenerContext.Request.IsWebSocketRequest来判断这个http连接是不是一个合法的WebSocket连接了。

然后就HttpListenerContext.AcceptWebSocketAsync,这样就能得到一个与客户端的WebSocket连接了。

为了方便,我们在服务端的GameMonitor项目里定义一个GameConnection类,用来集中处理用户的连接。

在我们的GameServer类里面添加一个HttpListener ClientListener成员,这活本来就该他来干~!
因为侦听会阻断主线程,所以还应该有个侦听的线程ListenThread
还需要一个记录连接的连接池ConnectionPool,这样方便我们管理当前的全部连接。
在构造方法里面对ClientListenerListenThread进行初始化:

private HttpListener ClientListener;
private Thread ListenThread;
public List<GameConnection> ConnectionPool = new List<GameConnection>(1000);
……
public GameServer(MainForm monitor)
        {
   
   
            Status = 0;
            Monitor = monitor;
            LOG("GameServer创建成功");
            gGame = new Game(LOG);

            ClientListener = new HttpListener();
            ClientListener.Prefixes.Clear();
            ClientListener.Prefixes.Add("http://localhost:666/");
            ListenThread = new Thread(new ThreadStart(Listen));
        }
……
private void Listen()
        {
   
   
            ClientListener.Start();
            while (ClientListener.IsListening)
            {
   
   
                try
                {
   
   
                    HttpListenerContext context = ClientListener.GetContext();
                    HttpListenerRequest request = context.Request;
                    LOG("收到请求来自:"
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值