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);
相關文章
相關標籤/搜索