更新:完全重写了这个更加简洁。
我正在寻找一个新的应用程序,其中一部分将与标准IM客户端非常相似,即文本聊天,发送附件的能力,也许是一些实时交互,如多用户白板。
它将是客户端 - 服务器,即所有流量都通过我的中央服务器。这意味着如果我想支持与其他IM系统的交叉通信,我仍然可以为我自己的客户端选择任何协议< - >服务器通信 - 我的服务器可以使用XMPP或其他任何与其他系统交谈。
预计客户端将包括桌面应用程序,但也可能通过Flex / Silverlight或HTML / AJAX也基于浏览器。
我为自己的客户端 - 服务器通信层看到了3个选项:
XMPP 即可。客户端已经存在的好处和开源服务器一样。然而,它需要最前期的研究/学习,并且看起来可能因GPL而引发法律问题。
自定义套接字。服务器应用程序与客户端建立连接,允许以非常快的速度发送任何文本/二进制数据。然而,这种方法需要从头开始构建所述服务器,并且还使JS客户端变得棘手
Servlet(或类似的Web服务器)。使用久经考验的Java Web堆栈,客户端发送类似于基于AJAX的网站的HTTP请求。好处是服务器易于使用成熟的技术编写,并且易于与之交谈。但这会带来什么限制?它是适合实时通信的技术吗?
欢迎提供建议和建议,尤其与基于套接字的方法相比,使用Web服务器方法的优缺点。
答案 0 :(得分:0)
我认为你正在重新发明轮子。考虑使用基于Java并在此IM服务器空间中经过验证的OpenFire或Tigase。所有锅炉板都可以利用。您的任务是通过编写插件来添加自定义行为。