RabbitMq、Stomp使用

消息队列RabbitMq

网上关于消息队列的框架挺多的,经常使用主要有RabbitMq,ActiveMq和ZeroMq几种,RabbitMq是一个比较重量级的框架,应用较普遍较成熟。 The Web-Stomp plugin is a simple bridge exposing the STOMP protocol over direct or emulated HTML5 WebSockets.须要了解的请参考: web-stompjavascript

消息队列RabbitMq的安装

如下主要介绍一下Windows平台上安装方法:html

  1. 首先下载RabbitMq
  2. RabbitMq须要Erlang支持,下载Erlang18_x64并安装
  3. 找到Rabbitmq command prompt
rabbitmq-plugins enable rabbitmq_management

而后就能够访问rabbitmq客户端java

  1. 默认用guest用户登陆,密码是guest,guest用户只能在localhost访问。登陆后你就能够建立新用户和队列,添加用户并设置权限就能够远程访问了。
  2. 开启stomp,找到Rabbitmq command prompt
rabbitmq-plugins enable rabbitmq_web_stomp
rabbitmq-plugins enable rabbitmq_web_stomp_examples

stomp的使用方法请参考web-stompweb

编写移动客户端

我使用的是HBuilder开发。基于H5的开发工具挺多的,可是试用了一下以后仍是以为效果都不是特别理想,当App中开的WebView开的多的时候都比较卡,手势操做卡顿也比较明显,因此我的感受基于H5开发目前还不能算是成熟的,只是适合一些网上商店类的程序,无需太好的性能同时也没有太多和硬件相关的操做。HBuilder的开发须要了解H5,CSS和Android/IOS开发的一些知识。 上段代码测试一下:websocket

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>

	</head>
	<body>
	<input type="button" id="id1" onclick="connect();" value="打开链接"></input>
	<input type="button" id="id2" onclick="send('你好');" value="发送消息"></input>
	<input type="button" id="id3" onclick="close();" value="关闭链接"></input>
		<script src="websocket/stomp.js"></script>
		<script type="text/javascript">
		var client = null;
		function connect()
		{
	    	var ws = new WebSocket('ws://192.168.3.98:15674/ws');
		    client = Stomp.over(ws);
		    client.onreceive = function(m) {
		    	alert(m);
		    }

		    var on_connect = function(x) {
		        id = client.subscribe("/queue/test", function(m) {
		            alert('11111');
		        });
		    };
		    var on_error =  function() {
		        console.log('error');
		    };
		    client.connect('root', '123456', on_connect, on_error, '/');

	    }
		function send(text){
			client.send('/queue/test', {'reply-to': '/temp-queue/foo'}, text);
		}
		function close(){
			client.close();
		}
    </script>
	</body>
</html>

若是正常弹出一些返回的消息,没有错误的话算是调试经过了。 接下来还须要作一些事情:定义一下消息协议,好比发给谁,什么类型什么内容什么时间。框架

from_id	发起者
type	类型
content	内容
time	发送时间
var msg = {"from_id":"id1","type":"text","content":"你好","time":"2016-04-22T16:44:15.8542784+08:00"};
var text1 = JSON.stringify(msg); 
client.send('/queue/test', {'reply-to': '/temp-queue/foo'}, text1);
相关文章
相关标签/搜索