亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

SuperSocket快速入門(三):實現你的AppServer和AppSession

2019-11-14 15:54:24
字體:
來源:轉載
供稿:網友

什么是Appsession?

  AppSession 代表一個和客戶端的邏輯連接,基于連接的操作應該定義于在該類之中。你可以用該類的實例發送數據到客戶端,接收客戶端發送的數據或者關閉連接。同時可以保存客戶端所關聯的數據。

什么是AppServer?

  AppServer 代表了監聽客戶端連接,承載TCP連接的服務器實例。理想情況下,我們可以通過AppServer實例獲取任何你想要的客戶端連接,服務器級別的操作和邏輯應該定義在此類之中。

第一步:創建你的AppSession

  為什么要創建AppSession呢,本人認為,快速入門系統,以下三點足夠你用的了。

  1. 需要重新實現會話創建、收到未知的協議數據的時候、處理異常等可重載的方法,像異常,只是做了記錄日志操作,部分方法都是不處理。
  2. 需要關聯一些數據,同時AppSession提供了可存放最多10個數據的Items的屬性(IDictionary<object, object>類型)。
  3. 需要其他對象來實現自定義協議。
 1 // 在下面的代碼中,當一個新的連接連接上時,服務器端立即向客戶端發送歡迎信息。 這段代碼還重寫了其它AppSession的方法用以實現自己的業務邏輯。 2 public class TelnetSession : AppSession<TelnetSession> 3 { 4     // 重載OnSessionStarted函數,贊同于appServer.NewSessionConnected += NewSessionConnected 5     PRotected override void OnSessionStarted() 6     { 7         // 會話鏈接成功后的邏輯部分。 8         this.Send("Welcome to SuperSocket Telnet Server"); 9     }10 11     protected override void HandleUnknownRequest(StringRequestInfo requestInfo)12     {13         // 收到未知請求的邏輯部分14         this.Send("Unknow request");15     }16 17     protected override void OnSessionClosed(CloseReason reason)18     {19         // 會話關閉后的邏輯代碼20         base.OnSessionClosed(reason);21     }22 }23 24 // 你可以根據你的業務需求來給Session類增加新的屬性25 public class PlayerSession :AppSession<PlayerSession>26 {27     public int GameHallId { get; internal set; }28 29     public int RoomId { get; internal set; }30 }

上述代碼中,兩個自定義的AppSession都是使用的命令行協議。由于泛型約束,在自定義AppSession的時候,泛型TAppSession一定要指定所定義的類,很多朋友像命令無法加載啦、服務器啟動不起來等等,都是因為這里定義錯誤造成的。

有朋友就會問了,為什么不能直接繼承AppSession呢?不好意思,快速入門系列不做補腦,在第一章的內容中已經說過。

第二步:創建你的AppServer類型

如果你創建自己的AppSession并希望使用它,那么必須要創建所對應的AppServer。

 1 // 現在 TelnetSession 將可以用在 TelnetServer 的會話中,也有很多方法可以重載 2 public class TelnetServer : AppServer<TelnetSession> 3 { 4     protected override bool Setup(IRootConfig rootConfig, IServerConfig config) 5     { 6         // 對家配置文件進行相應的修改。 7         return base.Setup(rootConfig, config); 8     } 9 10     protected override void OnStartup()11     {12         // 服務器啟動的邏輯部分13         base.OnStartup();14     }15 16     protected override void OnStopped()17     {18         // 停止服務器的邏輯部分19         base.OnStopped();20     }21 }

第三步:啟動你的服務器

還記錄上一節我們講的內容,如何啟動你的SS么?

// 第一種方法,代碼啟動。static void Main(string[] args){    // 注意是TelnetServer    var appServer = new TelnetServer();    appServer.Setup(2012);    // 開始監聽    appServer.Start();    while (Console.ReadKey().KeyChar != 'q')    {        Console.WriteLine();        continue;    }    // 停止服務器。    appServer.Stop();}// 第二種方法,通過配置啟動,需要注意的是,一定要注意配置好,不然啟動會失敗的,這里沒有判斷初始化成功與否,可以看源碼里面的例子。static void Main(string[] args){    var bootstrap = BootstrapFactory.CreateBootstrap();    bootstrap.Initialize();    bootstrap.Start();    while (Console.ReadKey().KeyChar != 'q')    {        Console.WriteLine();        continue;    }    bootstrap.Stop();}

通過配置啟動,需要注意的是,一定要配置正確,不然無法正常啟動你的AppServer,其中serverType="AppServer的完整名稱, 類所在程序集",如:serverType="SuperSocket.QuickStart.TelnetServer_StartByConfig.TelnetServer, SuperSocket.QuickStart.TelnetServer_StartByConfig"。

到此,如何啟動SS以及如果簡單的實現你的AppServer和AppSession并啟動你的AppServer完成,在下一章節中,我們講解如果關聯Command。

優點

  實現你自己的AppSession和AppServer允許你根據你業務的需求來方便的擴展SuperSocket,你可以綁定session的連接和斷開事件,服務器實例的啟動和停止事件。你還可以在AppServer的Setup方法中讀取你的自定義配置信息??偠灾?,這些功能讓你方便的創建一個你所需要的socket服務器成為可能。

參考文獻:http://docs.supersocket.net/v1-6/zh-CN/Implement-your-AppServer-and-AppSession


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩午夜激情| 精品视频中文字幕| 91精品国产777在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 国产精品成人播放| 成人午夜激情免费视频| 欧美激情视频播放| 欧美一区二区三区精品电影| 国产视频精品xxxx| 国产99视频精品免视看7| 日本一区二区三区在线播放| 欧美极品少妇xxxxⅹ喷水| 伊是香蕉大人久久| 欧美日韩在线视频首页| 久久天堂电影网| 亚洲国产日韩精品在线| 韩剧1988免费观看全集| 精品亚洲夜色av98在线观看| 日本一区二区不卡| 亚洲欧美色图片| 精品性高朝久久久久久久| 日本aⅴ大伊香蕉精品视频| 国产精品极品在线| 欧美激情久久久| 成人福利在线视频| 欧美大片网站在线观看| 国产精品精品久久久久久| 亚洲国产精品中文| 韩剧1988在线观看免费完整版| 国产精品美女主播在线观看纯欲| 国产婷婷97碰碰久久人人蜜臀| 亚洲欧洲黄色网| 久久青草精品视频免费观看| 俺去啦;欧美日韩| xxxxx91麻豆| 久久亚洲精品一区二区| 国产69精品久久久久久| 日韩电视剧免费观看网站| 国内精品一区二区三区| 亚洲淫片在线视频| 国产福利精品在线| 中文字幕久热精品视频在线| 在线播放亚洲激情| 中文字幕欧美日韩va免费视频| 精品国内产的精品视频在线观看| 国产日韩欧美日韩| 成人欧美一区二区三区在线| 国产精品久久久久久久久男| 日韩经典中文字幕在线观看| 57pao精品| 精品福利视频导航| 一区二区三区视频免费在线观看| 久久这里只有精品视频首页| 亚洲天堂av网| 美女视频黄免费的亚洲男人天堂| 亚洲国产毛片完整版| 亚洲国产古装精品网站| 亚洲影院高清在线| 日本精品性网站在线观看| 欧美最顶级的aⅴ艳星| 日韩av电影手机在线观看| 国产精品视频xxx| 91久久久久久国产精品| 亚洲精品乱码久久久久久金桔影视| 97香蕉超级碰碰久久免费的优势| 久久精品国产亚洲一区二区| 色哟哟网站入口亚洲精品| 青青草原一区二区| 国产精品jizz在线观看麻豆| 日韩中文字幕在线视频播放| 91免费精品国偷自产在线| 69**夜色精品国产69乱| 欧洲成人性视频| 日韩精品视频在线| 91色视频在线观看| 亚洲色图av在线| 色小说视频一区| 国产精品视频自在线| 欧美激情第一页xxx| xx视频.9999.com| 国产精品毛片a∨一区二区三区|国| 丝袜一区二区三区| 91亚洲精品久久久久久久久久久久| 欧美视频一二三| 九九热这里只有在线精品视| 亚洲色图17p| 曰本色欧美视频在线| 日韩精品免费在线视频| 国产欧美日韩中文字幕| 日韩免费黄色av| 欧美视频在线观看免费| 清纯唯美亚洲激情| 国产最新精品视频| 国内揄拍国内精品| 成人网页在线免费观看| 51ⅴ精品国产91久久久久久| 国产日韩欧美夫妻视频在线观看| 亚洲综合中文字幕68页| 欧美精品18videos性欧美| 日本a级片电影一区二区| 97视频免费看| 97视频色精品| 精品一区电影国产| 草民午夜欧美限制a级福利片| 国产性猛交xxxx免费看久久| 日韩精品视频在线免费观看| 国产精品户外野外| 亚洲欧洲在线视频| 久久免费精品日本久久中文字幕| 久久久久中文字幕2018| 亚洲大胆人体av| 国产精品嫩草影院久久久| 欧美极品少妇xxxxⅹ裸体艺术| 国产中文字幕91| 欧美性生交大片免费| 日韩一区二区欧美| 亚洲国产成人精品电影| 欧美大片va欧美在线播放| 欧美日韩国产丝袜另类| 精品色蜜蜜精品视频在线观看| 欧美日韩亚洲国产一区| 国产精品丝袜白浆摸在线| 国产日韩欧美影视| 久久伊人91精品综合网站| 亚洲jizzjizz日本少妇| 日韩av一区在线| 91精品久久久久久久久久| 国产在线久久久| 亚洲精品国精品久久99热| 国产91精品黑色丝袜高跟鞋| 日韩在线播放av| 精品亚洲一区二区| 亚洲国产欧美久久| 欧美成人午夜影院| 国语对白做受69| 91在线看www| 日韩精品在线免费观看视频| 国产精品久久久久久av| 亚洲国产私拍精品国模在线观看| 日韩中文字幕在线播放| 97在线视频观看| 国产精品久久久久999| 91系列在线播放| 亚洲美女福利视频网站| 欧美极品第一页| 性欧美xxxx交| 97久久精品人搡人人玩| 97在线日本国产| 91日本在线观看| 亚洲欧美制服综合另类| 欧美多人乱p欧美4p久久| 国产免费观看久久黄| 国产精品一区二区久久久久| 日本成人免费在线| 青青草国产精品一区二区| www.日韩av.com| 色婷婷av一区二区三区在线观看| 久久中文字幕一区| 久久久噜噜噜久久| 国产精品aaaa| 中文亚洲视频在线| 国内精久久久久久久久久人| 黑丝美女久久久| 欧美xxxx做受欧美|