• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            戰(zhàn)魂小筑

            討論群:309800774 知乎關(guān)注:http://zhihu.com/people/sunicdavy 開(kāi)源項(xiàng)目:https://github.com/davyxu

               :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              257 隨筆 :: 0 文章 :: 506 評(píng)論 :: 0 Trackbacks

            項(xiàng)目中, 我們使用Unity3D做客戶(hù)端開(kāi)發(fā). 自己擼了一套C#網(wǎng)絡(luò)庫(kù), 隨著項(xiàng)目的推進(jìn), 問(wèn)題來(lái)了:

            問(wèn)題

            每次Unity3D編輯器打開(kāi)時(shí), 連接服務(wù)器都會(huì)有一定幾率失敗, 需要反復(fù)關(guān)閉再打開(kāi)編輯器3~4次后, 才能正常接收到封包

            轉(zhuǎn)載請(qǐng)注明: 戰(zhàn)魂小筑http://www.shnenglu.com/sunicdavy

            探索

            我們的網(wǎng)絡(luò)庫(kù)基于C#的Begin/End系的異步Socket, 這種socket更接近C++的asio模型, 擼起來(lái)特爽.

            1. 根據(jù)經(jīng)驗(yàn), 這個(gè)詭異問(wèn)題多半跟多線(xiàn)程有關(guān)系. 復(fù)查代碼, 無(wú)效.

            2. 找友人更換網(wǎng)絡(luò)庫(kù), 換阻塞Socket實(shí)現(xiàn)和SocketAsyncEventArgs這種實(shí)現(xiàn)都試過(guò), 仍然無(wú)法解決問(wèn)題.

            3. 接下來(lái)還是對(duì)Begin/End系的網(wǎng)絡(luò)庫(kù)進(jìn)行日志追蹤. 發(fā)現(xiàn), 發(fā)送會(huì)總是成功, 連接成功和接收封包有一定幾率會(huì)斷掉

            我們并沒(méi)有單獨(dú)開(kāi)線(xiàn)程來(lái)處理, 而是利用底層異步通知, 然后有線(xiàn)程安全隊(duì)列切換到主線(xiàn)程進(jìn)行投遞. 因此底層的線(xiàn)程正常性是整個(gè)問(wèn)題的焦點(diǎn)

            由于一直無(wú)法找到原因, 這個(gè)問(wèn)題擱置了

            轉(zhuǎn)載請(qǐng)注明: 戰(zhàn)魂小筑http://www.shnenglu.com/sunicdavy

            解決方案

            直到有一個(gè)偶然的機(jī)會(huì), 取過(guò)同事代碼后. 突然發(fā)現(xiàn)第一次打開(kāi)Unity3D編輯器可以直接登錄. 但之后又不行. 同事提醒, 會(huì)不會(huì)是優(yōu)先度問(wèn)題.

            馬上打開(kāi)Edit->Project Settings->Script Execution Orders. 提高了網(wǎng)絡(luò)組建優(yōu)先度

            image

            測(cè)試, 通過(guò), 問(wèn)題解決

            轉(zhuǎn)載請(qǐng)注明: 戰(zhàn)魂小筑http://www.shnenglu.com/sunicdavy

            總結(jié)

            轉(zhuǎn)載請(qǐng)注明: 戰(zhàn)魂小筑http://www.shnenglu.com/sunicdavy

            一直懷疑這個(gè)問(wèn)題跟Mono版本過(guò)老有關(guān)系, 但由于5.2版本到年底才更新, 之前只能自己啃bug.

            在這個(gè)問(wèn)題發(fā)生后解決前, 我們還有一個(gè)相關(guān)見(jiàn)聞: 我們將網(wǎng)絡(luò)部分比較穩(wěn)定的代碼拆分放到dll中, 通過(guò)Unity3D的機(jī)制進(jìn)行加載

            結(jié)果, 網(wǎng)絡(luò)無(wú)法初始化. 估計(jì)也是跟這個(gè)問(wèn)題有關(guān)系

            總之, 有類(lèi)似問(wèn)題時(shí), 可以試用腳本執(zhí)行順序大法進(jìn)行嘗試

            posted on 2015-07-06 16:11 戰(zhàn)魂小筑 閱讀(3676) 評(píng)論(8)  編輯 收藏 引用 所屬分類(lèi): 游戲開(kāi)發(fā)技術(shù)Unity3D

            評(píng)論

            # re: 一個(gè)詭異的Unity3D的網(wǎng)絡(luò)問(wèn)題 2015-07-10 11:08 qiyun
            開(kāi)多線(xiàn)程無(wú)此問(wèn)題  回復(fù)  更多評(píng)論
              

            # re: 一個(gè)詭異的Unity3D的網(wǎng)絡(luò)問(wèn)題 2015-07-11 13:01 Ollydbg
            之前我測(cè)試這個(gè)問(wèn)題 是因?yàn)閁nityVS插件 去掉這個(gè)插件就沒(méi)這個(gè)問(wèn)題了.  回復(fù)  更多評(píng)論
              

            # re: 一個(gè)詭異的Unity3D的網(wǎng)絡(luò)問(wèn)題 2015-07-13 09:49 戰(zhàn)魂小筑
            @Ollydbg
            但總不能不用吧, 按你這么說(shuō), 確實(shí)也是這個(gè)道理, 打包出來(lái)的沒(méi)有這個(gè)問(wèn)題  回復(fù)  更多評(píng)論
              

            # re: 一個(gè)詭異的Unity3D的網(wǎng)絡(luò)問(wèn)題 2015-08-06 20:06 DRed
            原來(lái)是這個(gè)問(wèn)題,我之前用異步的收發(fā)包函數(shù),會(huì)出現(xiàn)收不到包,或者發(fā)不出包的情況。查了很久都查不出原因,后來(lái)用開(kāi)多線(xiàn)程的方式才解決了。。。  回復(fù)  更多評(píng)論
              

            # re: 一個(gè)詭異的Unity3D的網(wǎng)絡(luò)問(wèn)題 2015-08-28 22:23 ilylia
            @戰(zhàn)魂小筑
            我們也發(fā)現(xiàn)是UnityVS,但是無(wú)法解決,后來(lái)沒(méi)管了……影響不大  回復(fù)  更多評(píng)論
              

            # re: 一個(gè)詭異的Unity3D的網(wǎng)絡(luò)問(wèn)題[未登錄](méi) 2015-08-29 08:32 Lucifer
            unity4.3,自己寫(xiě)的網(wǎng)絡(luò)庫(kù)沒(méi)發(fā)現(xiàn)有這樣的問(wèn)題,跑的很歡  回復(fù)  更多評(píng)論
              

            # re: 一個(gè)詭異的Unity3D的網(wǎng)絡(luò)問(wèn)題 2016-05-10 11:08 主席
            Begin/End 這個(gè)你在IOS下測(cè)試過(guò)沒(méi)有,我的在IOS下收不到包。請(qǐng)問(wèn)您有遇到過(guò)嗎  回復(fù)  更多評(píng)論
              

            # re: 一個(gè)詭異的Unity3D的網(wǎng)絡(luò)問(wèn)題 2016-05-10 11:10 戰(zhàn)魂小筑
            @主席
            建議Recv不要用Begin/End系, 否則偶爾會(huì)發(fā)不出包. iOS和PC都會(huì)出此問(wèn)題  回復(fù)  更多評(píng)論
              

            久久久久久国产精品美女| 欧美一区二区精品久久| 久久国产精品无| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲成色WWW久久网站| 精品永久久福利一区二区| 99久久精品免费看国产一区二区三区| 三级韩国一区久久二区综合| 久久久久亚洲AV无码专区体验| 久久国产成人| 潮喷大喷水系列无码久久精品| 欧美精品丝袜久久久中文字幕 | 国产精品久久成人影院| 午夜福利91久久福利| 777米奇久久最新地址| 中文字幕无码av激情不卡久久| 精品久久777| 久久综合香蕉国产蜜臀AV| 久久影视综合亚洲| 久久精品国产亚洲欧美| 亚洲国产欧美国产综合久久 | 俺来也俺去啦久久综合网| 久久青青草原亚洲av无码| 亚洲国产精品久久久久久| 无码精品久久久天天影视| 亚洲国产成人精品无码久久久久久综合 | 2021国内久久精品| 久久国产福利免费| 18岁日韩内射颜射午夜久久成人| 久久久久亚洲精品日久生情| 久久久久亚洲av成人无码电影| 久久久久人妻精品一区二区三区 | 思思久久99热只有频精品66| 热久久这里只有精品| 国产亚洲婷婷香蕉久久精品| 狠狠色婷婷久久一区二区三区| 人妻无码αv中文字幕久久| 亚洲精品国产美女久久久| av色综合久久天堂av色综合在| 2020久久精品亚洲热综合一本| 久久久午夜精品福利内容|