Java 如何从Python客户端订阅websocket用户队列?
我想创建一个服务,其中Python客户机可以订阅spring boot提供服务的websocket上的用户队列。网上有一些资源,但是这些都集中在Java 如何从Python客户端订阅websocket用户队列?,java,python,spring-boot,websocket,Java,Python,Spring Boot,Websocket,我想创建一个服务,其中Python客户机可以订阅spring boot提供服务的websocket上的用户队列。网上有一些资源,但是这些都集中在 与JavaScript客户端(SockJS)而不是Python客户端连接,或 连接到主题而不是用户队列 我找到了以下资源: SpringBoot2.0.2允许创建一个简单的websocket服务器。本文展示了如何发布到主题(@SendToannotation) Baeldung的这篇文章介绍了如何创建对用户队列的订阅(@SendToUser注释)
- 与JavaScript客户端(SockJS)而不是Python客户端连接,或
- 连接到主题而不是用户队列
- SpringBoot2.0.2允许创建一个简单的websocket服务器。本文展示了如何发布到主题(
annotation)@SendTo
- Baeldung的这篇文章介绍了如何创建对用户队列的订阅(
注释)@SendToUser
- Python websocket客户端
- Python WebSocket
@Configuration
@EnableWebSocketMessageBroker
public class ClientWebsocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer
{
@Override
public void configureMessageBroker(@NotNull MessageBrokerRegistry aMessageBrokerRegistry)
{
aMessageBrokerRegistry.enableSimpleBroker("/queue", "/user");
aMessageBrokerRegistry.setApplicationDestinationPrefixes("/app");
aMessageBrokerRegistry.setUserDestinationPrefix("/user");
}
@Override
public void registerStompEndpoints(@NotNull StompEndpointRegistry aStompEndpointRegistry)
{
aStompEndpointRegistry.addEndpoint("/websocket").setAllowedOrigins("*").withSockJS();
}
}
控制器:
@Controller
public class SubscriptionController
{
@NotNull
@MessageMapping("/subscribe")
@SendToUser("/queue/reply")
public ReplyMessage processSubscribeFromClient(
@Payload Object object,
Principal principal)
{
return new ReplyMessage("Hello World");
}
}
信息:
class ReplyMessage
{
@Nullable private String content;
public ReplyMessage()
{
}
public ReplyMessage(@Nullable String content)
{
this.content = content;
}
@Nullable
public String getContent()
{
return content;
}
}