第一范文网 - 专业文章范例文档资料分享平台

SuperSocket学习进展

来源:用户分享 时间:2025/5/19 15:28:06 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

在 Windows Azure 中运行SuperSocket

关键字: Windows Azure, WorkRole, InputEndPoint, 云计算, 微软云

什么是 Windows Azure?

Windows Azure 是微软的云计算平台!微软的Windows Azure通过它的数据中心提供了按需分配的计算能力和存储空间用于在互联网上托管,扩展和管理应用程序。

这些在 Windows Azure 上运行的应用有很高的可靠性和可扩展能力。基于SuperSocket开发的服务器程序一样也能够很方便的运行在 Windows Azure 平台上。

SuperSocket 配置

用于在 Windows Azure 上运行的配置文件 app.config 和直接运行的SuperSocket的配置文件相同。

type=\SuperSocket.SocketEngine\

type=\SuperSocket.QuickStart.RemoteProcessService\

添加SuperSocket的启动代码到 Windows Azure 的 WorkRole 项目

与其它SuperSocket程序相同,启动代码同样也要写到程序的入口处,如 Windows Azure 的 WorkRole 项目的OnStart() 方法: public override bool OnStart() {

// 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.

m_Bootstrap = BootstrapFactory.CreateBootstrap();

if (!m_Bootstrap.Initialize()) {

Trace.WriteLine(\ return false; }

var result = m_Bootstrap.Start();

switch (result) {

case (StartResult.None):

Trace.WriteLine(\configuration!\

return false;

case (StartResult.Success):

Trace.WriteLine(\ break;

case (StartResult.Failed):

Trace.WriteLine(\to start SuperSocket server! Please check error log for more information!\ return false;

case (StartResult.PartialSuccess):

Trace.WriteLine(\server instances were started successfully, but the others failed to start! Please check error log for more information!\ break;

}

return base.OnStart(); }

配置和使用 Input Endpoint

由于Windows Azure的内部网络架构,你不能直接监听你配置中的IP和端口。在这种情况下,你需要在Windows Azure项目中配置Input Endpoint:

这些 endpoint的命名规则是 \。 例如,我们在配置文件中配置了名为\的server:

然后我们就应该创建一个名为\的Endpoint。 在代码中,你可以通过编程的方式获得该Endpoint真正的端口号: var instanceEndpoint =

RoleEnvironment.CurrentRoleInstance.InstanceEndpoints[serverConfig.Name + \serverConfig.Port].Port;

但是你不用为SuperSocket这样做,因为 SuperSocket 已经实现了监听Endpoint的替换已经。 因此,你只需当SuperSocket的Bootstrap初始化的时候将Endpoint的字典传入就行了,最终代码如下:

public override bool OnStart() {

// 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. m_Bootstrap = BootstrapFactory.CreateBootstrap(); if (!m_Bootstrap.Initialize(RoleEnvironment.CurrentRoleInstance.InstanceEndpoints.ToDictionary(p => p.Key, p => p.Value.IPEndpoint))) { Trace.WriteLine(\ return false; } var result = m_Bootstrap.Start(); switch (result) { case (StartResult.None): Trace.WriteLine(\configuration!\ return false; case (StartResult.Success): Trace.WriteLine(\ break; case (StartResult.Failed): Trace.WriteLine(\to start SuperSocket server! Please check error log for more information!\ return false; case (StartResult.PartialSuccess): Trace.WriteLine(\the others failed to start! Please check error log for more information!\ break; } return base.OnStart(); } 最后,你就可以启动你的Windows Azure实例了。

搜索更多关于: SuperSocket学习进展 的文档
SuperSocket学习进展.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0a9r10687u9y6yn8bcxl_10.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top