RabbitMq、Stomp使用

原创
2016/04/22 15:57
阅读数 3.7K

消息队列RabbitMq

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

消息队列RabbitMq的安装

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

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

然后就可以访问rabbitmq客户端

  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-stomp

编写移动客户端

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

<!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);
展开阅读全文
打赏
1
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
1
分享
返回顶部
顶部