我知道这个问题以前可能有人问过,但我已经创建了一个websocket api使用spring引导,并在javascript sockjs中运行良好,但我需要该api在android应用程序上工作,我找不到任何类似javascript js的javawebsocket客户端。这是我的javascript代码,在stompwebclientapi上运行良好。我需要在连接应用程序订阅如下javascript代码
<script type="text/javascript">
var stompClient = null;
function myfunction()
{
stompClient = Stomp.client('ws://mydomain.com:8443/MyContex/ws');
stompClient.connect({}, onConnected, onError);
}
const onConnected = () => {
console.log("connected");
stompClient.subscribe(
"/user/1/queue/messages",// I need java code to do this
onMessageReceived
);
};
const onError = (err) => {
console.log(err);
};
</script>
我遵循了这一点,但从未找到在javascript中执行注解部分的代码。
这是我的SpringBootStompAPI。
public class ChatController
{
@Autowired
private SimpMessagingTemplate messagingTemplate;
@Autowired
private MessageModelService messageModelService;
@Autowired
private ChatRoomService chatRoomService;
@MessageMapping("/chat")
public void processMessage(@Payload MessageModel messageModel) {
Optional<String> chatId = chatRoomService
.getChatId(messageModel.getSenderId(), messageModel.getRecipientId(), true);
messageModel.setChatId(chatId.get());
MessageModel saved = messageModelService.save(messageModel);
messagingTemplate.convertAndSendToUser(
messageModel.getRecipientId(),"/queue/messages",
new ChatNotification(
saved.getId().toString(),
saved.getSenderId(),
saved.getSenderName()));
}
}
@Data
private class MessageModel{
private String recepientId;
private String senderId;
private String message;
}
@Configuration
@EnableWebSocketMessageBroker
public class WebMessageConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker( "/user");
config.setApplicationDestinationPrefixes("/app");
config.setUserDestinationPrefix("/user");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry
.addEndpoint("/ws")
.withSockJS()
.setAllowedOrigins("*");
}
}
暂无答案!
目前还没有任何答案,快来回答吧!