微信小程序是个不错的平台,用来做手机小游戏真的很好,简单、通用性好、方便传播。
——茂叔
好了,现在我们开始做客户端了,客户端选择微信小程序,所以我们要下载微信Web开发者工具。
所以为什么说腾讯只会抄袭呢,一旦自己搞点东西,连取个名字都不会了,这要是洋人搞的,保不齐取个什么高大上的名字呢……例如TCStadio、TCWARESHOP之类的,一看就觉得高大上。
好吧,中国人就是低调,总之你还没安装的话赶紧安装吧。
申请小程序的过程很简单,自己去微信公众平台去查,我这里就不啰嗦了。
重点就是要记住你的AppID,AppSecret这两个东西。
然后,客户端第一件要做的事情,那就是与服务器建立网络连接,根据腾讯公司给出的文档,wss协议的WebSocket是唯一的选择了。
建立连接
服务端
那么,首先是要在服务器端提供网络连接服务。
因为websocket是基于http协议的,所以,在.Net里面还是使用HttpListener来侦听。
侦听器开始运行了以后,就可以使用HttpListener.GetContext,来接受客户端的连接,这是个同步的方法,会阻断当前的线程,直到有用户连接上来为止。
有客户端连接上来了,就可以HttpListenerContext.Request.IsWebSocketRequest来判断这个http连接是不是一个合法的WebSocket连接了。
然后就HttpListenerContext.AcceptWebSocketAsync,这样就能得到一个与客户端的WebSocket连接了。
为了方便,我们在服务端的GameMonitor项目里定义一个GameConnection类,用来集中处理用户的连接。
在我们的GameServer类里面添加一个HttpListener ClientListener成员,这活本来就该他来干~!
因为侦听会阻断主线程,所以还应该有个侦听的线程ListenThread。
还需要一个记录连接的连接池ConnectionPool,这样方便我们管理当前的全部连接。
在构造方法里面对ClientListener和ListenThread进行初始化:
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("收到请求来自:"

最低0.47元/天 解锁文章
1362

被折叠的 条评论
为什么被折叠?



