java - Spring boot websocket发送jsonstring

标签 java spring-boot stomp spring-websocket

我是 Spring Boot 新手,我正在尝试使用 websocket 发回 jsonstring,但我认为它没有返回正确的 jsonstring 格式。

RMModel.java

public class RMModel {
    private Integer inQueue;
    private Integer suspended;

    public RMModel getMessage() {
        this.inQueue = new Random().nextInt(11);
        this.suspended = new Random().nextInt(11);
        return this;
    }

    @Override
    public String toString() {
        return "{" + "\"inqueue\":" + this.inQueue + "," + "\"suspended\":" + this.suspended + '}';
    }
}

WebSocketScheduler.java

@Component
public class WebSocketScheduler {

    @Autowired
    private SimpMessagingTemplate template;

    @Scheduled(fixedRate = 1000)
    public void publishData() {
        String data = RMModel.getData().toString();
        this.template.convertAndSend("/topic/recon", data);
    }
}

所以我想将 RMModel 的 jsonstring 返回给客户端。我有 angular2 客户端

this._stompService.subscribe('/topic/recon').subscribe(res => console.log(JSON.parse(res.body)));

它没有转换为 json 对象。 在 Spring Boot 中返回 jsonstring 的正确方法是什么?

最佳答案

问题已解决。 该模型不应该有返回自身的方法,jackson 将抛出异常。

RMModel.java

public class RMModel {
    private Integer inQueue;
    private Integer suspended;

    public Integer getInQueue() {
        return inQueue;
    }

    public void setInQueue(Integer maximum) {
        this.inQueue = new Random().nextInt(maximum);
    }

    public Integer getSuspended() {
        return suspended;
    }

    public void setSuspended(Integer maximum) {
        this.suspended = new Random().nextInt(maximum);
    }

    @Override
    public String toString() {
        return "{" + "\"inqueue\":" + this.inQueue + "," + "\"suspended\":" + this.suspended + '}';
    }

关于java - Spring boot websocket发送jsonstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51406591/

相关文章:

java - 在java中以一定的概率做一个 Action

java - 如何在 Glass Fish Server/Apache Tomcat 上部署 Rest Web 服务?

java - 检查字谜时出现奇怪的比较问题

spring.jpa.hibernate.ddl-auto = update属性每次都会更改外键

spring - 从 Spring websocket stomp 服务器断开客户端 session

java - 无法启动bean 'stompBrokerRelayMessageHandler';嵌套的异常是java.lang.NoClassDefFoundError : io/netty/util/concurrent/EventExecutor

spring - Stomp.js 已过时且不再维护 - 哪个 Stomp 客户端与 Spring Websockets 一起使用?

由 long 而不是 int 索引的 Java 缓冲区?

java - 类加载器错误 - 加载器 org.springframework.boot.devtools.restart.classloader.RestartClassLoader 的未命名模块

java - 使用 Spring Boot、JPA 通过引用关联实体