通过事件总线桥将事件直接从客户端推送到服务器端垂直站点有哪些优点/缺点?换句话说,在客户端应用程序和服务器参与者之间共享事件总线有什么好处?
如你所知,维特。x是一个事件循环,它促使您使用类似smth的参与者模型。独立的参与者(垂直者)可以在EventBus的帮助下相互交流。
好的,安排客户机-服务器通信的常见方法是使用下一种方案:
让我感到困惑的是,客户端Javascript可以直接与服务器端的每个参与者/垂直体通信:
const eb=new EventBus('http://localhost:8080/eventbus)
eb。send('some-address',{name:'tim',年龄:587})
- 客户端从特定的服务器端参与者
eb接收应答。registerHandler('some-address',(错误,消息)=
使用直接的客户机参与者沟通而不是传统沟通有什么好处
那么安全呢?现在每个垂直点都应该安全了
那么代码的简单性呢?从一方面来说,事情变得容易了一点,但你已经没有了任何单一的切入点。这种新方法是否适用于具有复杂后端的不平凡的应用程序
你推荐哪一个
首先,这取决于——
关于安全性,您只允许一些队列可用于客户端。垂直。x调用这些入站和出站地址。这样,您就不需要“保护”每个垂直站点,因为客户端无法直接访问它们。
如果您有“实时”用例,即需要在不按重新加载的情况下尽快通知客户端,那么我将使用事件总线通信(例如聊天等)。但谁说你只能做一件事?您只需通过事件总线通知重要的更改(没有数据),并让客户机通过普通总线检索更改的数据
有关Actor模型的更多信息,我建议阅读可伸缩Web架构的并发编程或七周七个并发模型一书。
编辑普通WebSocket与事件总线网桥:
垂直。xweb附带了一个基于SockJS的事件总线桥。它将Web客户端与Vert集成。x事件总线。SockJS甚至可以通过长轮询等技术在旧浏览器中实现类似WebSocket的通信:
UndertheHood SockJS首先尝试使用原生WebSocket。如果失败,它可以使用各种特定于浏览器的传输协议,并通过类似WebSocket的抽象来呈现它们。
垂直。十声明如下:
WebSocket一样的界面,只是工作。
所以,基本上是垂直的。如果WebSocket在客户端浏览器中可用,x事件总线网桥将使用WebSocket。因此,我更喜欢事件总线桥而不是自己的WebSocket实现。
我的项目是在服务器上读取一个图像,进行一些处理,然后将整个图像传递给客户端。客户端接收图像并进行更多处理,然后将一些输出值返回给服务器。服务器和客户端之间使用的映像大小为[640x480x3]。 以下是我想到的实现这个问题的各种技术: 通过消息将整个像素值从服务器传递到客户端 在SO中有各种各样的答案。我目前正在努力让它工作。 服务器和客户端之间的这种消息传递模式是否可能?如果是,请提供一些文档参
问题内容: 我正在尝试使用我一直在努力的客户端/服务器程序实现多线程。我需要允许多个客户端同时连接到服务器。我目前有4类:客户端,服务器,协议和用于处理线程的工作器。以下代码是我对这些类的拥有的代码: SocketServer类: SocketClient类别: 协议类别: ClientWorker类: 当我运行服务器和客户端时,一切正常。然后,当我尝试运行另一个客户端时,它只是挂在那儿,没有提示
我正在试用一个简单的示例。我能够运行服务器应用程序和客户端应用程序来彼此通信。我现在需要了解一个教程,说明两个客户机如何通过服务器相互通信。 我怎么能这么做?有人能给我指出一个好的教程或者解释如何在Java中实现这一点吗
问题内容: 我正在尝试以客户端/服务器方式制作Java应用程序。客户端是SWT中的GUI,它显示来自服务器的数据。服务器已连接到数据库。 好的,对此感到抱歉,我确定这是一个经典问题,但我不知道如何开始。 在我为他们工作的一个项目中,他们实施了很多魔术来透明地调用Glassfish服务器。 我不想使用Glassfish服务器。我只想要简单的Java语言。但是代理的概念似乎很酷。 你有这种想法或例子吗
前面的章节介绍了所有 Redis 的重要功能组件: 数据结构、数据类型、事务、Lua 环境、事件处理、数据库、持久化, 等等, 但是我们还没有对 Redis 服务器本身做任何介绍。 不过, 服务器本身并没有多少需要介绍的新东西, 因为服务器除了维持服务器状态之外, 最重要的就是将前面介绍过的各个功能模块组合起来, 而这些功能模块在前面的章节里已经介绍过了, 所以本章将焦点放在服务器的初始化过程,
我试图在Java中实现一个多线程服务器,服务器为每个连接到它的客户机生成一个新线程。通信在一个类中执行,该类实现可运行接口,并将套接字描述符作为输入。当一个新客户端连接时,我会生成一个带有套接字描述符编号的新线程。 我需要在服务器上维护两个ArrayList,每当新客户端加入系统时都会更新(带有客户端发送的一些数据)。如何在运行在不同线程中的多个客户端之间完成这种共享ArrayList的行为?