编程语言
首页 > 编程语言> > java – 使用Openfire,Smack和Play聊天网站的架构!骨架

java – 使用Openfire,Smack和Play聊天网站的架构!骨架

作者:互联网

我正在开发一个使用Openfire XMPP服务器的聊天网站,客户端使用Smack API.使用Smack API的Web项目是使用Play实现的!框架使它RESTful.我选择了Play!因为它的异步编程产品(Comet Sockets / WebSockets).

基本上,到目前为止,我的架构如下所示:

Openfire< - >网络服务器< - >用户/浏览器.

为了支持Android设备,并最大化代码重用,我是否应该将XMPP客户端代码实现为网站和Android客户端常见的RESTful Web服务?

Openfire< - > Web服务< - >网站< - >浏览器/用户.

Openfire< - > Web服务< - > Android应用.

我害怕可扩展性问题,因为引入了中间Web服务?由于必须经历多个组件,我是否会在通信中引入延迟?

对上述任何建议都会有所帮助.谢谢.

解决方法:

可扩展性的关键是解耦.因此,从本质上讲,您可以根据“如果其中一个组件发生故障,其他组件是否会继续正常工作?”来解决问题.除了避免世界末日场景之外,您还可以独立地水平扩展每个组件.

考虑到这一点,现在让我们继续讨论您的具体用例.层的层次仍然让我看到一些关于Java EE架构的噩梦.它不仅会引入不必要的延迟,还会使查明问题变得更加困难.如果您的服务失败,是由Web服务器,Android应用程序还是Web服务导致的失败?

如果要重用代码,请重用代码而不是复制组件.这就是图书馆的用途.将您的公共代码作为库提取并在Web服务器和Android应用程序中使用它.

标签:java,web-services,playframework,openfire,smack
来源: https://codeday.me/bug/20190620/1247781.html