SuperSocket 1.4系列文檔(17) 在Windows Azure中運行SuperSocket

來源:互聯網
上載者:User

Windows Azure是微軟的雲端運算平台!Windows Azure通過微軟的資料中心為開發人員提供以按需的計算能力和儲存能力去託管、擴充和管理互連網上的應用程式。

運行於Windows Azure上的應用程式具有很高的可靠性和延展性。

基於SuperSocket的伺服器程式可以輕易的運行於Windows Azure平台之上。

和普通Socket伺服器程式不同,首先需要在Role的屬性中設定Socket程式對外提供服務的Endpoint:

然後在WorkerRole代碼檔案中動態擷取外部Endpoint所對應的內部Endpoint:

var instanceEndpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[serverConfig.Name + "Endpoint"];

完整的代碼如下:

public override bool OnStart()

{

    LogUtil.Setup();

    // Set the maximum number of concurrent connections 

    ServicePointManager.DefaultConnectionLimit = 100;

 

    // For information on handling configuration changes

    // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.

 

    var serverConfig = ConfigurationManager.GetSection("socketServer") as SocketServiceConfig;

 

    if (!SocketServerManager.Initialize(serverConfig, ResolveServerConfig))

    {

        Trace.WriteLine("Failed to initialize SuperSocket!", "Error");

        return false;

    }

 

    if (!SocketServerManager.Start())

    {

        Trace.WriteLine("Failed to start SuperSocket!", "Error");

        return false;

    }

 

    return base.OnStart();

}

 

private IServerConfig ResolveServerConfig(IServerConfig serverConfig)

{

    var config = new ServerConfig();

    serverConfig.CopyPropertiesTo(config);

 

    var instanceEndpoint = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[serverConfig.Name + "Endpoint"];

    if (instanceEndpoint == null)

    {

        Trace.WriteLine(string.Format("Failed to find Input Endpoint configuration {0}!", serverConfig.Name + "Endpoint"), "Error");

        return serverConfig;

    }

 

    var ipEndpoint = instanceEndpoint.IPEndpoint;

    config.Ip = ipEndpoint.Address.ToString();

    config.Port = ipEndpoint.Port;

    return config;

}

就這樣,你的SuperSocket伺服器程式就可以正確的運行在Windows Azure平台之上。

完整的範例程式碼,請參考原始碼中WindowsAzure檔案夾下的項目。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.