c# - C# 真的适用于现代网络套接字服务器吗?

标签 c# websocket

<分区>

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

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

为这个项目选择使用 C# 来节省开发时间是多么糟糕的决定,因为我会在可伸缩性和后续的事情上遇到更多的麻烦。

对于现代网络应用程序套接字服务器,C# 是否被认真考虑可行?

最佳答案

一个人可以在任何平台上编写糟糕的代码。或者好的代码。是的,您可以用 C# 编写一个非常好的低影响、高度可扩展的服务器。但如果这是您编写的第一个此类内容(无论平台如何),您很可能无法有效地编写它,然后断定这是平台的错。

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

实际上,如果您专门寻找 Web 套接字代码,那么 Windows 8 上的 .NET 4.5 将包括通过 HTTP.SYS 的内置 Web 套接字支持(显然带有托管包装器),但它可以手动完成。我可能甚至可以共享我们为此编写的库。

关于c# - C# 真的适用于现代网络套接字服务器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11593249/

相关文章:

c# - 如何将带有多个条件(带有 LIKE)的 SQL SELECT INNER JOIN 查询写入 LINQ to SQL

c# - 异步等待一系列状态

c# - Rhino Mock 调用异步任务方法

php - symfony 和ratchet 在 null 上调用成员函数 get()

c# - 在 C# 中比较两个列表

javascript - 如何将字节 []/内存流绑定(bind)到 Javascript 中的图像 src 属性

ajax - 轮询与长轮询

ruby-on-rails - websocket 握手期间的 Rails ActionCable 错误

websocket - Socket.io 1.x 集群没有粘性 session ?

Android SocketIOClient错误: "Scheme ' ws' not registered