Fork me on GitHub 打赏

游戏服务器开发所需知识点总结

之前在做注册登录服务器逻辑时,遇到的一些要点难点,记录于此。

一、基础必备技能

1,掌握至少一门用于后端开发的编程语言,如C/C++、Java、Go等;

2,理解TCP/UDP的机制,Socket编程,分包粘包实现的原理;

3,Protobuf协议,RPC协议;

4,数据库操作,例如MySQL,Redis;

5,对服务器架构有一定了解,比如知道集群怎么搭建,因为这涉及到多台服务器,例如聊天服、战斗服、登录注册服。

 

二、客户端与服务器端的通讯

1,TCP机制、分包粘包,让服务端知道如何处理从客户端那接收来的消息;

2,设置协议号,就像服务器端与客户端之间约定好的暗号,客户端发来消息时客户端接收到消息看到“暗号”后就知道客户端要干什么;

3,定通讯协议,我用的是Google Protobuf;

4,熟练掌握用Go语言操作数据库,因为用户注册时的数据都要及时保存进数据库,方便以后增删改查。

 

三、通讯安全

1,知道为什么会要有线程安全的概念,如果多人对一组数据同时读和写会造成什么后果?

2,加锁的概念与运用;

3,多线程的弊端。

 

四、其他

1,了解心跳机制,为什么要设立心跳机制;

2,用户在注册时如何处理不合理和重复的字符;

 

五、小结

以上就是我目前接触到的技术要点,有些也是难点。

注册登录涉及整个网络游戏的基础,因此一定要从严要求,收发数据与安全这块绝对不能出错。

 

posted @ 2018-08-30 21:16 Zoctopus_Zhang 阅读(...) 评论(...) 编辑 收藏
// function btn_donateClick() { var DivPopup = document.getElementById('Div_popup'); var DivMasklayer = document.getElementById('div_masklayer'); DivMasklayer.style.display = 'block'; DivPopup.style.display = 'block'; var h = Div_popup.clientHeight; with (Div_popup.style) { marginTop = -h / 2 + 'px'; } } function MasklayerClick() { var masklayer = document.getElementById('div_masklayer'); var divImg = document.getElementById("Div_popup"); masklayer.style.display = "none"; divImg.style.display = "none"; } setTimeout( function () { document.getElementById('div_masklayer').onclick = MasklayerClick; document.getElementById('btn_donate').onclick = btn_donateClick; var a_gzw = document.getElementById("guanzhuwo"); a_gzw.href = "javascript:void(0);"; $("#guanzhuwo").attr("onclick","follow('33513f9f-ba13-e011-ac81-842b2b196315');"); }, 900);