Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
NotificationsYou must be signed in to change notification settings

base64coder/websocket-stomp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

layouttitledatecommentscategories
post
java/MQ/install rabbitmq on debian and how to using it
2017-06-23 10:07:03 +0800
true
  1. add sources.list
echo'deb http://www.rabbitmq.com/debian/ testing main'| sudo tee /etc/apt/sources.list.d/rabbitmq.listwget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc| sudo apt-key add -
  1. update & upgrade System
apt-get updateapt-get upgrade
  1. install rabbitmq-server
apt-get install rabbitmq-server

add a new administrator & delete guest

  1. list default user list
rabbitmqctl list_users

2.list default vhosts

rabbitmqctl list_vhosts
  1. add a new user: liujun & set password & add to administrator group
rabbitmqctl add_user liujun**********rabbitmqctl set_permissions -p / liujun".*"".*"".*"rabbitmqctl set_user_tags liujun administratorrabbitmqctl list_users

enable plugin: amqp_client rabbitmq_jms_topic_exchange rabbitmq_management rabbitmq_stomp rabbitmq_web_mqtt rabbitmq_web_stomp sockjs

cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.10sbin/rabbitmq-pluginsenable --offline --online amqp_client rabbitmq_jms_topic_exchange rabbitmq_management rabbitmq_stomp rabbitmq_web_mqtt rabbitmq_web_stomp sockjs/etc/init.d/rabbitmq-server restartnetstat -ant| grep 672tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTENtcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTENtcp6       0      0 :::5672                 :::*                    LISTEN

add a empty rabbitmq.config

echo [].> /etc/rabbitmq/rabbitmq.config

restart rabbitmq-server

/etc/init.d/rabbitmq-server restart

config rabbitmq in spring

  1. create a websocket message broker
@Configuration@EnableWebSocketMessageBrokerpublicclassWebSocketConfigextendsAbstractWebSocketMessageBrokerConfigurer {@OverridepublicvoidconfigureMessageBroker(MessageBrokerRegistryconfig) {config.enableStompBrokerRelay("/topic/");config.setApplicationDestinationPrefixes("/app");}@OverridepublicvoidregisterStompEndpoints(StompEndpointRegistryregistry) {registry.addEndpoint("/quakesep").withSockJS();//endpoint}}
  1. create a controller & template
@ControllerpublicclassDashboardController {@RequestMapping(value = {"","/"},method =RequestMethod.GET)publicStringindex(){return"dashboard/index";}}
<!DOCTYPE html><htmllang="en"xmlns:th="http://www.thymeleaf.org"><head><metacharset="UTF-8"/><title></title><linkrel="stylesheet"th:href="@{/css/bootstrap.min.css}"href="../../static/css/bootstrap.min.css"/><linkrel="stylesheet"th:href="@{/css/bootstrap-theme.css}"href="../../static/css/bootstrap-theme.css"/><linkrel="stylesheet"th:href="@{/css/application.css}"href="../../static/css/application.css"/></head><body><scriptth:src="@{/js/jquery-1.7.2.js}"src="../../js/jquery-1.7.2.js"></script><scriptth:src="@{/js/moment.min.js}"src="../../js/moment.min.js"></script></body></html>
  1. create gateway xml & rabbit config
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:int="http://www.springframework.org/schema/integration"xmlns:int-http="http://www.springframework.org/schema/integration/http"xmlns:int-amqp="http://www.springframework.org/schema/integration/amqp"xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/integration/amqp http://www.springframework.org/schema/integration/amqp/spring-integration-amqp.xsdhttp://www.springframework.org/schema/integration/http http://www.springframework.org/schema/integration/http/spring-integration-http.xsd">    <importresource="rabbit-context.xml"/><!--<int:inbound-channel-adapter channel="quakeinfotrigger" expression="''">--><!--<int:poller fixed-delay="1000"/>--><!--</int:inbound-channel-adapter>--><!--<int:channel/>--><!--<int:channel/>--><!--<int-http:outbound-gateway--><!--request-channel="quakeinfotrigger"--><!--url="http://localhost:8180/stomp/quake/json"--><!--http-method="GET"--><!--expected-response-type="java.lang.String"--><!--charset="UTF-8"--><!--reply-channel="quakeinfo">--><!--</int-http:outbound-gateway>--><!--<int-amqp:outbound-channel-adapter amqp-template="amqpTemplate" channel="quakeinfo"/>--></beans>
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:rabbit="http://www.springframework.org/schema/rabbit"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">    <rabbit:connection-factoryid="connectionFactory"username="liujun"host="localhost"password="*********"port="5672"/>    <rabbit:templateid="amqpTemplate"connection-factory="connectionFactory"exchange="amq.topic"routing-key="quakes.all"channel-transacted="true"/>    <rabbit:adminconnection-factory="connectionFactory"/>    <rabbit:topic-exchangename="amq.topic"/></beans>
  1. config application
@ComponentScan@EnableAutoConfiguration@ImportResource("classpath:httpgateway.xml")publicclassMain {publicstaticvoidmain(String[]args) {SpringApplication.run(Main.class,args);}}

send message to rabbitmq using topic

because I using node js to send message into broker & i using amqplib, so:

npm i amqplib --save
varamqp=require('./node_modules/amqplib/callback_api');amqp.connect('amqp://liujun:*************@localhost',function(err,conn){conn.createChannel(function(err,ch){if(err){setTimeout(function(){conn.close();process.exit(0)},500);}setInterval(function(){pub(ch);},1000);});functionpub(ch){varex='amq.topic';varkey='quakes.all';varmsg=newDate().getTime().toString();ch.assertExchange(ex,'topic',{durable:true});ch.publish(ex,key,newBuffer(msg));report(key,msg);}functionreport(key,msg){console.log(" [x] Sent %s:'%s'",key,msg);}});

subscribe topic with socketjs

inject stomp.js & sockjs into html template:

<scriptth:src="@{/js/sockjs-0.3.4.js}"src="../../js/sockjs-0.3.4.js"></script><scriptth:src="@{/js/stomp.js}"src="../../js/stomp.js"></script>
/*<![CDATA[*/$(document).ready(function(){connect();});varstompClient=null;functionconnect(){varsocket=newSockJS('/quakesep');//连接endpointstompClient=Stomp.over(socket);stompClient.connect({},function(frame){console.log('Connected: '+frame);stompClient.subscribe('/topic/quakes.all',function(message){showQuakeInfo(message.body);});});}functionshowQuakeInfo(quakeCollectionJson){varquakeCollection=$.parseJSON(quakeCollectionJson);varname=quakeCollection.nameconsole.log(name);}/*]]>*/

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp