当前位置: 首页 > 知识库问答 >
问题:

没有STOMP的Spring 4 webSocketjs

谭志用
2023-03-14

我试图在不使用socketjs库的情况下测试websocket,而且我不想添加任何stomp连接。

我下面的例子stackoverflow问题:WebSocket与Sockjs

因此,如果没有践踏服务器,我已经成功地通过ocketjs库与url连接:ws://localhost:8080/greeting/741/0tb5jpyi/websocket

现在我想删除socketjs库以允许原始websocket连接(可能是android、ios等设备)

删除参数时:。使用SockJS(),我无法通过websocket进行连接。

我尝试了以下URL,但不起作用:

ws://localhost:8080/greeting/394/0d7xi9e1/websocket not worked
ws://localhost:8080/greeting/websocket not worked
ws://localhost:8080/greeting/ not worked 

我应该使用哪个URL进行连接?

共有3个答案

巢海
2023-03-14

我在客户端也面临同样的情况,客户端不能连接到服务器。

使我工作的是将下面的setAllowedOriginates(“*”)添加到自定义处理程序。

registry.addHandler(webSocketHandler, "/app").setAllowedOrigins("*");
申屠昌胤
2023-03-14

您应该使用ws://localhost:8080/greeting

new WebSocket('ws://localhost:8080/greeting')
庄瀚玥
2023-03-14

在我的项目中,我使用WebSocket时没有跺脚。

下面的配置适用于Spring-start

在pom中添加Spring Bootwebsocket依赖项。xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-websocket</artifactId>
    <version>${spring-boot.version}</version>
</dependency>

然后添加一个类(这里WebSocketServerConfiguration.java),它配置您的webSocketServerC:

@Configuration
@EnableWebSocket
public class WebSocketServerConfiguration implements WebSocketConfigurer {

    @Autowired
    protected MyWebSocketHandler webSocketHandler;

    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(webSocketHandler, "/as");
    }
}

最后,您可以编写您的WebsocketHandler。Spring为WebSocketHandler提供了不同的抽象类(在主包中:org.springframework.web.socket.handler)。我的websocket配置时没有STOMP,我的客户端也没有使用socket。js。因此,MyWebSocketHandler扩展了TextWebSocketHandler,并覆盖了错误、打开和关闭连接以及接收到的文本的方法。

@Component
public class MyWebSocketHandler extends TextWebSocketHandler {
    ...

    @Override
    public void handleTransportError(WebSocketSession session, Throwable throwable) throws Exception {
        LOG.error("error occured at sender " + session, throwable);
        ...
    }

    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
        LOG.info(String.format("Session %s closed because of %s", session.getId(), status.getReason()));

        ...
    }

    @Override
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
        LOG.info("Connected ... " + session.getId());

        ...
    }

    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage jsonTextMessage) throws Exception {
        LOG.debug("message received: " + jsonTextMessage.getPayload());
        ...
    }
}
 类似资料:
  • 我有支持SpringWebSocket的Spring服务器。我想使用STOMP子协议来处理web套接字上的通信,因此STOMPendpoint的配置如下所示: Spring文档和我能找到的关于这个主题的基本资源展示了如何使用SockJS StompJS创建STOMP客户端。它可以工作,但据我所知,根本不需要它——因为STOMP只是一个子协议,我应该能够通过使用STOMP消息语法,基本上从任何web

  • Stomp 提供了客户端和代理之间进行广泛消息传输的框架。Stomp 是一个非常简单而且易用的通讯协议实现,尽管代理端的编写可能非常复杂,但是编写一个 Stomp 客户端却是很简单的事情,另外你可以使用 Telnet 来与你的 Stomp 代理进行交互。 用法示例: client = Stomp::Client.new("test", "user", "localhost", 61613)clie

  • 我们正在将SpringWebSockets集成到我们的应用程序中,我运行了HelloWorld示例,令人惊讶的是,spring为我们连接了一切,以便将服务器端通知推送到客户端。 不过,我有一些简单的问题 1) 队列是如何创建的?我使用的是ActiveMQ,队列名称与我在目的地中指定的不同(例如,像greetings-user3n9\u jn3i)。 2)目标名称是否不同于队列? 3) 我正在使用A

  • 更改历史 * 2018-06-17 胡小根 初始化文档 1 历史、现状和发展 1.1 历史 1.2 现状 1.3 发展 难点:预测发展方向。 2 安装和使用 采用Rabbit Web Stomp插件,实现web stomp 2.1 安装 参见:http://www.rabbitmq.com/web-stomp.html 2.2 使用 2.2.1 创建Queue 2.2.2 Web端

  • (要求Workerman版本>=3.3.6) 注意:此项目已经过期,无法使用,请勿安装 STOMP是一个通讯协议。它是支持大多数消息队列如RabbitMQ、Apollo等。 安装: composer require react/stomp 示例: <?php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker;

  • 我正在节点上使用stomp客户端。js与ActiveMQ。当前,生产者将消息推送到队列中,如果客户端(消费者)已连接,则它会使用消息。若客户端未连接,则消息在队列中挂起,直到或除非连接了某个消费者。 在我的例子中,消费者执行的每个操作都很昂贵,最多需要2个小时。我想消费一条消息,然后停止消费队列中的消息,直到该操作完成。目前,一旦消息被推入队列,客户端就会自动从队列中提取所有消息。我想要的是提取一