C#对于现代Web套接字服务器真的可行吗?

时间:2012-07-21 15:03:48

标签: c# websocket

我需要为基于HTML5 / Mobile的回合制游戏开发一个相当可扩展的套接字服务器。

时间是一个真正的因素,因为我需要在3个月内制作出原型。我在C#方面拥有丰富的(多年)经验,在Node或Erlang方面没有经验,我已经将其作为该项目的完美语言。不幸的是,这两种语言都会有很多与它们相关的学习曲线以及诸如代码质量,单元测试,可维护性之类的东西,我将没有经验,因此我认为代码的质量很差。

选择使用C#来为这个项目节省开发时间的决定有多糟糕,因为我会遇到更多关于可扩展性和事情的麻烦。

现在的Web应用程序套接字服务器认为C#是否可行?

2 个答案:

答案 0 :(得分:5)

一个人可以在任何平台上编写错误的代码。或者好的代码。是的,您可以在c#中编写一个非常好的低影响,高度可扩展的服务器。但如果这是你写的第一个(无论平台如何),你很可能无法有效地编写它,然后得出结论这是平台的错误。

例如,在SO / SE上驱动即时更新的Web套接字服务器是用c#编写的,处理60k +连接,几乎没有像任何CPU一样注册。但它是设计的,完全异步网络访问,缓冲区回收,专用工作线程等。

实际上,如果你专门寻找网络套接字代码,那么Windows 8上的.NET 4.5将通过HTTP.SYS(显然包含托管包装)包含内置的网络套接字支持,但它可以手动完成。我可以可能甚至共享我们编写的库来执行此操作。

答案 1 :(得分:2)

简短:

Long:c#是静态类型的,它实际上是编译为本机代码(在Windows上),根据我的经验,速度简直太棒了。考虑它像C ++与垃圾收集器:-)值类型+真正的泛型使事情比例如Java,我也认为它也足够好。

请注意,您不应该被benchmarks game吓到,它会使用Mono。

如果您真的遇到麻烦,您可以执行不安全操作,如果您真的需要它们。所以不用担心未来。