JS websocket 连接ActiveMQ

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Chat Example Using STOMP Over WebSockets</title>
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/bootstrap.min.responsive.css" rel="stylesheet">
    <style type="text/css">
      body { padding-top: 40px; }
    </style>
  </head>

  <body>
    
    <div class="navbar navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <a class="brand" href="#">ActiveMQ STOMP WebSocket Chat Example</a>
        </div>
      </div>
    </div>

    <div class="container-fluid">
      <div class="row-fluid">
        <div class="span6">
          <div id="connect">
            <div class="page-header">
              <h2>Server Login</h2>
            </div>
            <form class="form-horizontal" id='connect_form'>
              <fieldset>
                <div class="control-group">
                  <label>WebSocket URL</label>
                  <div class="controls">
                    <input name=url id='connect_url' value='ws://localhost:61614' type="text">
                  </div>
                </div>
                <div class="control-group">
                  <label>User</label>
                  <div class="controls">
                    <input id='connect_login' placeholder="User Login" value="admin" type="text">
                  </div>
                </div>
                <div class="control-group">
                  <label>Password</label>
                  <div class="controls">
                    <input id='connect_passcode' placeholder="User Password" value="password" type="password">
                  </div>
                </div>
                <div class="control-group">
                  <label>Destination</label>
                  <div class="controls">
                    <input id='destination' placeholder="Destination" value="/topic/chat.general" type="text">
                  </div>
                </div>
                <div class="form-actions">
                  <button id='connect_submit' type="submit" class="btn btn-large btn-primary">Connect</button>
                </div>
              </fieldset>
            </form>
          </div>
          <div id="connected" style="display:none">
            <div class="page-header">
              <h2>Chat Room</h2>
            </div>
            <div id="messages">
            </div>
            <form class="well form-search" id='send_form'>
              <button class="btn" type="button" id='disconnect' style="float:right">Disconnect</button>
              <input class="input-medium" id='send_form_input' placeholder="Type your message here" class="span6"/>
              <button class="btn" type="submit">Send</button>
            </form>
          </div>
        </div>
        <div class="span4">
          <div class="page-header">
            <h2>Debug Log</h2>
          </div>
          <pre id="debug"></pre>
        </div>
      </div>
    </div>

    <!-- Scripts placed at the end of the document so the pages load faster -->
    <script src='js/jquery-1.7.2.min.js'></script>
    <script src="js/stomp.js"></script>
    <script>//<![CDATA[
    $(document).ready(function() {
      if(window.WebSocket) {
        var client, destination;
        $('#connect_form').submit(function() {
          var url = $("#connect_url").val();
          var login = $("#connect_login").val();
          var passcode = $("#connect_passcode").val();
          destination = $("#destination").val();

          client = Stomp.client(url);

          // this allows to display debug logs directly on the web page
          client.debug = function(str) {
            $("#debug").append(document.createTextNode(str + "\n"));
          };
          
          // the client is notified when it is connected to the server.
          client.connect(login, passcode, function(frame) {
            client.debug("connected to Stomp");
            $('#connect').fadeOut({ duration: 'fast' });
            $('#connected').fadeIn();
            client.subscribe(destination, function(message) {
              var p = document.createElement("p");
              p.appendChild(document.createTextNode(message.body));
              $("#messages").append(p);
            });
          });
          return false;
        });
  
        $('#disconnect').click(function() {
          client.disconnect(function() {
            $('#connected').fadeOut({ duration: 'fast' });
            $('#connect').fadeIn();
            $("#messages").html("")
          });
          return false;
        });
   
        $('#send_form').submit(function() {
          var text = $('#send_form_input').val();
          if (text) {
            client.send(destination, {}, text);
            $('#send_form_input').val("");
          }
          return false;
        });
      } else {
        $("#connect").html("\
            <h1>Get a new Web Browser!</h1>\
            <p>\
            Your browser does not support WebSockets. This example will not work properly.<br>\
            Please use a Web Browser with WebSockets support (WebKit or Google Chrome).\
            </p>\
        ");
      }
    });
    //]]></script>

  </body>
</html>







### 回答1: Spring Boot是一个非常流行的Java框架,可以轻松地创建Web应用程序。如果你想要使用WebSocketActiveMQ来实现实时通信,可以按照以下步骤: 1. 添加Maven依赖:在你的pom.xml文件中添加以下依赖 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> ``` 2. 配置WebSocket:创建一个WebSocketConfigurer类,配置WebSocket的消息处理程序和地址。例如: ```java @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myHandler(), "/my-handler").setAllowedOrigins("*"); } @Bean public WebSocketHandler myHandler() { return new MyHandler(); } } ``` 3. 创建一个WebSocket处理程序:创建一个类来处理WebSocket消息。例如: ```java public class MyHandler extends TextWebSocketHandler { @Override public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { // 处理文本消息 } } ``` 4. 配置ActiveMQ:在application.properties或application.yml文件中添加以下配置,指定ActiveMQ的地址和队列名称。 ```yaml spring.activemq.broker-url=tcp://localhost:61616 spring.activemq.user=admin spring.activemq.password=admin spring.jms.pub-sub-domain=false spring.jms.template.default-destination=my-queue ``` 5. 发送和接收消息:在你的控制器中使用JmsTemplate来发送和接收消息。例如: ```java @RestController public class MyController { @Autowired private JmsTemplate jmsTemplate; @PostMapping("/send-message") public void sendMessage(@RequestBody String message) { jmsTemplate.convertAndSend(message); } @JmsListener(destination = "my-queue") public void receiveMessage(String message) { // 处理消息 } } ``` 这就是使用Spring Boot、WebSocketActiveMQ实现实时通信的基本步骤。当然,具体实现还取决于你的需求和业务逻辑。 ### 回答2: Spring Boot是一个用于构建Java应用程序的开发框架,它简化了Java开发的繁琐和复杂性。WebSocket是一种通信协议,可以在客户端和服务器之间建立双向的实时通信。而ActiveMQ是一个流行的开源消息队列中间件,用于在分布式系统中传递消息。 Spring Boot可以很方便地集成WebSocketActiveMQ,实现实时的消息传递。首先,我们需要添加相应的依赖包到项目的配置文件中,然后编写WebSocket的配置类和ActiveMQ的配置类。 在WebSocket的配置类中,我们需要定义一个WebSocket处理器,用于处理客户端和服务端的通信。同时,我们还需要定义一个服务器端点,用于客户端连接WebSocket。 在ActiveMQ的配置类中,我们需要定义一个连接工厂,用于创建和管理与ActiveMQ连接。同时,我们还需要定义一个消息队列,用于存储和分发消息。 然后,我们可以在Spring Boot的控制器中利用WebSocketActiveMQ来实现实时通信。我们可以将客户端的消息发送到消息队列中,然后订阅消息队列的监听器会即时地接收到消息。同时,我们还可以将服务器端的消息通过WebSocket发送给客户端,实现双向的实时通信。 总的来说,Spring Boot可以方便地集成WebSocketActiveMQ,实现实时的消息传递。通过这种方式,我们可以构建一些实时性要求较高的应用程序,如在线聊天、实时数据展示等。 ### 回答3: Spring Boot是一个用于构建Java应用程序的开发框架,WebSocket是一种通信协议,ActiveMQ是一个开源消息中间件。结合这三者可以实现在Spring Boot应用中使用WebSocketActiveMQ进行通信。 在Spring Boot中集成WebSocketActiveMQ的步骤如下: 1. 首先,在pom.xml文件中添加WebSocketActiveMQ的依赖。 2. 创建一个WebSocket配置类,用于配置WebSocket的相关信息,包括注册WebSocket处理器和握手拦截器等。 3. 创建一个WebSocket处理器类,用于处理WebSocket请求并与ActiveMQ进行通信。 4. 创建一个ActiveMQ配置类,配置ActiveMQ连接信息。 5. 在需要使用WebSocket的地方,注入WebSocket处理器,并使用WebSocket发送消息。 通过这样的配置和代码编写,就可以实现使用Spring Boot、WebSocketActiveMQ进行通信的功能。当客户端发送消息到WebSocket时,WebSocket处理器会将消息发送到ActiveMQ,接着ActiveMQ将消息发送给订阅了该消息的其他客户端。 使用Spring Boot、WebSocketActiveMQ的好处是可以实现实时的双向通信,并能够将消息发送给多个订阅者。这对于实时聊天应用、实时数据推送等场景非常有用。 总之,结合Spring Boot、WebSocketActiveMQ可以实现一个强大的实时通信功能。通过合理的配置和编写相应的代码,可以轻松地实现这一功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Farmwang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值