我应该使用哪种编程语言编写Instant Messenger? 以下是目标:
(不,XMPP不是一个选项)。
我是一名具有丰富PHP经验的Web开发人员,但这不是此项目的选项。我也有使用Javascript(主要用于网站)的经验,但我很容易使用node.js而且我对C#.Net几乎没有经验,也可以编写C#.Mono。我想写的服务器应该在Linux上运行。我没有使用Java的经验,但如果这是我学习它的最佳方式。
我已经阅读了很多关于node.js的内容,并且它的I / O非常适合网络应用程序和Web服务器。但即时通讯呢?主要部分是保存消息并将其代理给其他房间参与者,因此它是“网络”。
我还想过提供异步套接字的C#,它可以使用线程池afaik而不是事件队列。
我不确定哪种方式对IM服务器最有效。
如果有人能给我一个提示,那就太好了。我知道C ++可能是最好的方式,但我不太喜欢那种语言,而且很难学习。
答案 0 :(得分:5)
你可以用任何普通的编程语言(C#,Java,C ++等)来完成所有这些,只要你能够胜任这种语言。
答案 1 :(得分:0)
任何这些解决方案都可以。您可以用几乎任何语言编写事件网络代码 - 是的,在这样的场景中使用它非常酷。
如果你想要一些可以提供更简单网络的框架的东西,我建议你尝试使用Erlang,但是对于一个项目来说可能很难学习。对于死连接上的keepalive /资源管理以及你没有真正得到事件的类似场景,node.js可能会很棘手。
如果你已经熟悉c#,使用mono可能是最安全/最快的事情。除此之外 - 你可以用任何语言写任何东西 - 只需使用你所熟悉的东西(除非你真的想学习新东西)。
我不知道你为什么写jabber不是一个选项,但如果它只是你不想要的xmpp技术,为什么不使用典型的SIP代理/服务器呢? (例如OpenSIPS)MESSAGE请求处理,订阅,授权(使用db)和keepalive已经可用。您可以以任何您想要的方式扩展/集群/分割OpenSIPS。