Java Websocket中的通道与代理与目标
SpringWebSocket中的Java Websocket中的通道与代理与目标,java,spring,Java,Spring,SpringWebSocket中的channel与broker与destination之间有什么区别 我最近开始使用websocket,根据我的理解: registry.addEndpoint(“/wsocket/”)添加websocket端点,该端点仅在客户端希望连接到websocket服务时使用: this.client.configure({ brokerURL: `ws://localhost:9022/wsocket`, onConnect: () =>
channel
与broker
与destination
之间有什么区别
我最近开始使用websocket,根据我的理解:
registry.addEndpoint(“/wsocket/”)
添加websocket端点,该端点仅在客户端希望连接到websocket服务时使用:
this.client.configure({
brokerURL: `ws://localhost:9022/wsocket`,
onConnect: () => {
this.client.subscribe('/quote/fb', message => {
console.log(message);
});
}
});
this.client.activate();
config.enableSimpleBroker(“/quote”)
启用通道/代理,允许客户端订阅它并接收通过它发布/发送的消息。客户端可以订阅服务器上的任何/quote/*
config.setApplicationDestinationPrefixes(“/app”)
设置应用程序前缀,客户端使用该前缀直接向应用程序发送消息,而不是通过代理发送消息
我的理解正确吗 我认为你的理解是正确的 经纪人 消息代理在处理两个应用程序之间的通信时充当中介平台。在spring websocket的上下文中: 使用Spring的STOMP支持时,SpringWebSocket应用程序充当客户端的STOMP代理。消息被路由到@Controller消息处理方法或一个简单的内存代理,该代理跟踪订阅并向订阅用户广播消息。您还可以将Spring配置为与专用STOMP代理(如RabbitMQ、ActiveMQ和其他)一起工作,以实际广播消息。在这种情况下,Spring维护到代理的TCP连接,将消息中继到代理,并将消息从代理向下传递到连接的WebSocket客户端 频道 它可以被认为是消息在一个或两个方向上的逻辑隔离。例如,可以有三个通道。一个用于请求(传入到服务器),第二个用于响应(从服务器传出),第三个用于错误(从服务器传出) 目的地 可以将其视为通道的另一层次嵌套。我发现这张图片有助于理解它: [![在此处输入图像描述][1][1] 客户机可以使用SEND或SUBSCRIBE命令发送或订阅消息,以及描述消息内容和接收者的目标标头。这启用了一个简单的发布-订阅机制,您可以使用该机制通过代理向其他连接的客户端发送消息,或者向服务器发送消息,请求执行某些工作 我发现关于这个主题的Spring文档非常有用: