分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

ActiveMQ、Stomp、SockJS入门级应用

发布时间:2023-09-06 01:31责任编辑:沈小雨关键词:暂无标签

使用ActiveMQ、Stomp、SockJS实现实时在线聊天

  ActiveMQ : 强大的开源即时通讯和集成模式的服务器。在本项目中充当消息代理服务器,stomp协议服务端。

    安装:在官网下载,直接解压缩,运行cmd,进入bin目录执行 activemq.bat  start;linux中执行 ./activemq start。

  Stomp:stomp是一个文本定向通讯协议。本项目使用stomp协议基于JavaScript的客户端库 stomp.js

    安装:下载stomp.js,引入项目中

  SockJS:SockJS是WebSocket的JavaScript库,是webSocket的实现  

     安装:下载SockJS.js,引入项目中

  第一步 : 创建JavaWeb项目,配置Maven依赖,依赖如下

 1 <properties> 2 ????????<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 3 ????????<spring.version>4.2.4.RELEASE</spring.version> 4 ????</properties> 5 ?6 ????<dependencies> 7 ????????<dependency> 8 ????????????<groupId>org.springframework</groupId> 9 ????????????<artifactId>spring-webmvc</artifactId>10 ????????????<version>${spring.version}</version>11 ????????</dependency>12 13 ????????<dependency>14 ????????????<groupId>org.springframework</groupId>15 ????????????<artifactId>spring-websocket</artifactId>16 ????????????<version>${spring.version}</version>17 ????????</dependency>18 19 ????????<dependency>20 ????????????<groupId>org.springframework</groupId>21 ????????????<artifactId>spring-messaging</artifactId>22 ????????????<version>${spring.version}</version>23 ????????</dependency>24 25 ????????<dependency>26 ????????????<groupId>io.projectreactor</groupId>27 ????????????<artifactId>reactor-net</artifactId>28 ????????????<version>2.0.7.RELEASE</version>29 ????????</dependency>30 31 ????????<dependency>32 ????????????<groupId>io.netty</groupId>33 ????????????<artifactId>netty-all</artifactId>34 ????????????<version>4.0.33.Final</version>35 ????????</dependency>36 37 38 ????????<dependency>39 ????????????<groupId>com.fasterxml.jackson.core</groupId>40 ????????????<artifactId>jackson-databind</artifactId>41 ????????????<version>2.6.4</version>42 ????????</dependency>43 44 ????????<dependency>45 ????????????<groupId>javax.servlet</groupId>46 ????????????<artifactId>javax.servlet-api</artifactId>47 ????????????<version>3.1.0</version>48 ????????????<scope>provided</scope>49 ????????</dependency>50 51 52 ????</dependencies>

  第二步:配置消息终端,在SpringMVC配置文件中加入如下配置

  

<websocket:message-broker application-destination-prefix="/app"> ???????<websocket:stomp-endpoint path="/stomp"> ???????????<websocket:sockjs /> ???????</websocket:stomp-endpoint> ???????<websocket:stomp-broker-relay ???????????prefix="/topic,/queue" ???????????relay-host="localhost" ???????????relay-port="61613" ???????????heartbeat-receive-interval="20000" ???????????heartbeat-send-interval="20000" ???????/> ???</websocket:message-broker>

  第三步:编写消息处理代码

  

package com.its.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.messaging.handler.annotation.MessageMapping;import org.springframework.messaging.simp.SimpMessagingTemplate;import org.springframework.stereotype.Controller;@Controllerpublic class MessageController { ???@Autowired ???private SimpMessagingTemplate template; ???@MessageMapping("channel") ???public String send(String message){ ???????String text = message; ???????template.convertAndSend("/topic/pinkzhuang",text); ???????return text; ???}}

  第四步:编写页面消息收发逻辑,页面要引入stomp.js和SockJS.js

function connect(){ ???????????var socket = new SockJS("http://localhost:8080/ActivityMQStomp/stomp"); ???????????stompClient = Stomp.over(socket); ???????????stompClient.connect({},function(frame){ ???????????????setConnected(true); ???????????????console.log("Connected: " + frame); ???????????????stompClient.subscribe("/topic/pinkzhuang",function(greeting){ ???????????????????showGreeting(greeting.body); ???????????????}); ???????????}); ???????}function disconnect(){  stompClient.disconnect();}function sendMessage(message){  stompClient.send("/app/vince",{},name);}

  第五步:可登录localhost:8161进入activeMQ的管理页面,初始账号密码均为admin,可以手动在管理页面发送消息

  

  The End.

    

ActiveMQ、Stomp、SockJS入门级应用

原文地址:http://www.cnblogs.com/Vince-blogs/p/8087233.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved