Я пытаюсь собрать простой пример приложения WebSocket, в котором используются AngularJS и Spring Boot.Я использую эту библиотеку angularjs websocket
Проблема в том, что я не могу отправить что-либо с клиента на сервер.На входе нет ошибок, и ничего не записано, на входе нет ошибок.
Конфигурация Websocket:
package org.example.project;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration implements
WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/report");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/socket").
setAllowedOrigins("*").withSockJS();
}
}
Реализация конечной точки Websocket:
package org.example.project;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Controller;
@Controller
public class WebSocketController {
private final SimpMessagingTemplate template;
@Autowired
WebSocketController(SimpMessagingTemplate template) {
this.template = template;
}
@MessageMapping("/uc/status/request")
public void onReceivedMessage(String message) {
System.out.println(" THIS CAME FROM WS CLIENT ");
this.template.convertAndSend("/uc/status/report",
"received " + message);
}
}
Реализация углового клиента:
'use strict'
var app = angular.module('app', [
'ngWebSocket'
])
app.controller("MyController", function($scope, $http, $websocket) {
// path to the end point is actually /app/uc/status/request
// unable to add end point path when connecting
// and don't know how to subscribe
var ws = $websocket('ws://localhost:8080/socket/websocket/');
ws.onMessage(function(event) {
console.log('message: ', event);
});
ws.onError(function(event) {
console.log("error");
});
ws.onClose(function(event) {
});
ws.onOpen(function(event) {
console.log('connection open');
});
// nothing happens when this call is made
ws.send("message content", "/app/uc/status/request");
});