java - 如何将事件数据和事件名称从 Spring Boot 发送到 Angular?

标签 java angular spring-boot events event-handling

我正在 Angular 和 Spring Boot 中开发聊天应用程序。我在 Angular 中使用 EventSource ,在 Spring boot 中使用 ApplicationEventPublisher 接口(interface)。现在,我想将事件数据和事件名称从 Spring Boot 发送到 Angular,以便 eventSource.addListener("eventName", () => {}) 将根据事件捕获事件-姓名。请告诉我如何将事件数据和事件名称从 Spring Boot 发送到 Angular。 我的 spring-boot Controller :

@CrossOrigin("*")
@RestController
public class MessageController {

    @Autowired
    MessageService messageService;

    @Autowired
    ApplicationEventPublisher applicationEventPublisher;

    private static final Logger logger = LoggerFactory.getLogger(MessageController.class);

    @GetMapping(value = "/event/")
    public void getEvent(@RequestHeader(value = "Content-Type", defaultValue = "text/event-stream")) 
    {
        logger.info("AWSTranslateController:: getEvent() method /event");
        MessageEvent messageEvent = new MessageEvent (this, "receiver3", response);
        applicationEventPublisher.publishEvent(messageEvent );
    }
}

springboot MessageEvent POJO:

public class MessageEvent extends ApplicationEvent{
    private static final long serialVersionUID = 1L;
    private Object eventResponse;
    private String eventName;

    public MessageEvent(Object source, String eventName, Object eventResponse) {
        super(source);
        this.eventName = eventName;
       this.eventResponse = eventResponse;
    }

    public Object getEventResponse() {
        return eventResponse;
    }

    public String getEventName() {
        return eventName;
    }

}

最佳答案

在 Angular 方面创建一个监听服务,可能的解决方案是使用 WebSocket 概念。一旦您的套接字端口准备好接收请求,您就可以使用消息 ping 事件。

An example with WebSocket and angular is here

关于java - 如何将事件数据和事件名称从 Spring Boot 发送到 Angular?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58506090/

相关文章:

java - 对单个进程集体使用多个线程

java - 从oracle表加载3000万条记录到内存

angular - ngForTemplate - 通过 ContentChild 使用模板,或回退到默认值

spring - 如何在Spring(Spring Boot)中将外部配置资源包含到类路径中?

java - 同一个包中的@Around @Aspect 仅适用于@DependsOn

java - Spring Boot Hibernate CRUD REST API 404错误

java - 如果按下键盘,JOptionPane 会中断扫描仪输入

java - 为什么我们需要一个静态锁来同步system.out.println()?

node.js - Angular-cli 'JavaScript heap out of memory' Assets 优化

组件中的Angular 2重复订阅