在Spring Boot应用程序中使用Java Websocket API

时间:2018-09-05 12:24:28

标签: java spring spring-boot websocket

我想在Spring Boot应用程序中使用java websocket API。 我创建了以下类,如下所述: https://www.baeldung.com/java-websockets

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;

@ServerEndpoint(value = "/test")
public class FrontendEndpoint {

        @OnOpen
        public void onOpen(Session session) throws IOException {
                session.getBasicRemote().sendText("Test");
        }

        @OnMessage
        public void onMessage(Session session, String message) throws IOException {
        }

        @OnClose
        public void onClose(Session session) throws IOException {
        }

        @OnError
        public void onError(Session session, Throwable throwable) {
        }
}

我尝试连接到该网络套接字,但是什么也没发生。我在互联网上看到很多文章,但没有任何帮助。我不知道如何使它工作。

当我尝试连接到网络套接字时,什么也没发生。

Spring Boot版本:2.0.3

Websocket-API版本:1.1

我也看不到websocket的开放端口。

谢谢

BR

3 个答案:

答案 0 :(得分:1)

我曾经使用Spring Boot和Websocket API创建了一个示例应用程序

https://github.com/simasch/spring-boot-websocket

但是问题是ServerEndpoint不是由Spring管理,而是由Websocket实现管理。因此,这可能不是您应该在Spring Boot中使用websockets的方式。

我建议看看Spring如何认为应该使用Websockets: https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#websocket

答案 1 :(得分:0)

有点晚了,但是万一有人来这里寻求解决方案。

Spring文档中没有介绍如何在Spring中使用Java WebSocket API(JSR-356),尽管我花了数小时的时间来研究它,但我没有找到任何描述如何实现它的教程。

为了在Spring中使用Java WebSocket API,您应该使用org.springframework.web.socket.server.standard.SpringConfigurator类: https://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/web/socket/server/standard/SpringConfigurator.html 来自

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-websocket</artifactId>
   <version>...</version>
</dependency>

只需将其添加到您的

@ServerEndpoint(... configurator = SpringConfigurator.class) 

就完成了。带注释的类将成为由@Autowired注入合法的通常由Spring管理的组件,依此类推。

希望它对某人有帮助:)

答案 2 :(得分:0)

如果您想在Spring Boot应用程序中使用java websocket API,则必须将其添加到spring配置中

const mongoose = require("mongoose");

const ReviewSchema = new mongoose.Schema({
    review: {
        type: String,
        required:[true, "Review is required."],
        minlength:[10, "Your Review must be 2 characters or longer."],
        maxlength:[600, "Your Review is limited to 25 characters or less."]
    }

    movieId: {
         type: mongoose.Types.ObjectId,
         ref: "Movie"
    }
},{timestamps:true})

const Review= mongoose.model("Review",ReviewSchema );

module.exports = Review;

这里是完整的article