逆向服務(wù)器用了三天的時間,但此時覺得一切都值,又可以繼續(xù)學(xué)習(xí)了。
服務(wù)器中登錄請求和注冊請求由command變量進行區(qū)分,上一層的type變量都是login。
public void process(Session session, SocketModel model)
{
switch (model.Command)
{
case 0:
this.login(session, model);
break;
case 2:
this.reg(session, model);
break;
}
}
從注冊入手!視頻對應(yīng)的應(yīng)該是第七講。
點擊注冊按鈕,輸入賬號密碼,實測可以在服務(wù)器收到編碼后的字符串,但此時有個問題就是只有點擊登錄按鈕后,客戶端才會連接服務(wù)器,上來直接點擊“注冊”再“確定”是收不到任何東西的。
現(xiàn)在這些都簡單了,新發(fā)現(xiàn)是vs可以自動分別打開兩個不同的項目,登錄按鈕綁定的函數(shù)如下。
然后發(fā)現(xiàn),LoginClick()和RegistClick()中基本大同小異,說明建立連接的不是LoginClick()。而是因為“登錄”按鈕綁了Canvas,Canvas中是有網(wǎng)絡(luò)初始化腳本的。所以最簡單的辦法就是給登錄界面右邊的“注冊”按鈕也綁上Canvas。實測此時確實可以直接注冊!
然后最自然的想法就是看看賬號密碼存在哪里了!加個位數(shù)限制,16位之內(nèi),防溢出,至于字符限制,暫時不用考慮。
public void reg(Session session, SocketModel model)
{
Console.WriteLine("用戶申請注冊666");
//MyLog.form.textAdd("用戶申請注冊");
Console.WriteLine(model.Message);
LoginDTO loginDto = Coding<LoginDTO>.decode(model.Message);
Console.WriteLine("與眾不同"+loginDto.userName.Length+" "+ loginDto.passWord.Length);
if(loginDto.userName.Length<=17&& loginDto.passWord.Length<=17)
{
Console.WriteLine("BizUtil.account.create");
bool v = BizUtil.account.create(loginDto.userName, loginDto.passWord);
session.write(0, 0, 3, (object)new BoolDTO(v));
}
}
然后去看BizUtil.account.create()函數(shù)的代碼,vs會自動定位的。
有如下兩類數(shù)據(jù)需要存儲
namespace GameServer.src_biz
{
internal class BizUtil
{
public static AccountBiz account = new AccountBiz();
public static UserBizImpl user = new UserBizImpl();
}
}
?去看AccountBiz類(account是類中實例化的一個對象)中的create()函數(shù)的內(nèi)容,只要知道滿足條件就去進TryAdd函數(shù)就可以了:文章來源:http://www.zghlxwxcb.cn/news/detail-832844.html
public bool create(string userName, string password)
{
if (this.accounts.ContainsKey(userName))
return false;
AccountModel accountModel = new AccountModel(Guid.NewGuid().ToString(), userName, password);
return this.accounts.TryAdd(userName, accountModel);
}
實際測試發(fā)現(xiàn),create函數(shù)的返回值是True和false,可以做到1.判斷賬號是否重復(fù)。但2只要服務(wù)器重啟,之前的數(shù)據(jù)就全部作廢了!簡而言之沒有數(shù)據(jù)庫功能!文章來源地址http://www.zghlxwxcb.cn/news/detail-832844.html
到了這里,關(guān)于unity學(xué)習(xí)(19)——客戶端與服務(wù)器合力完成注冊功能(1)入門準(zhǔn)備的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!