网上查了查 ActiveMQ + .net core 的例子很少,自己做一个demo 作为记录,另外FineUI Core基础版要来了,出来后我会用FineUI再做一版,为知识星球的引流...
1.安装SDK 准备ActiveMQ 服务
略
此处用的 .net core 2.0+
略
此处用的 apache-activemq-5.9.0
2.创建项目
3.引用样式
略
4.引用DLL
注意:先安装 Apache.NMS.NetCore 再安装 Apache.NMS.ActiveMQ.NetCore
5.抄袭一个ActiveMQHelp
来自 https://blog.csdn.net/PeterPan_hai/article/details/52354913
这里未做任何修改,正常添加引用即可
6.写代码
引用
直接重写 View/Home/Index.cshtml
@{ ViewData["Title"] = "全球都比较大的聊天室"; } @section body{ <h2>@ViewData["Title"]</h2> <form></form> } @section Scripts{ @*框架已经引用了*@ @*<script src="http://www.likecs.com/~/js/MQTT/paho-mqtt.js"></script>*@ <script> $(document).ready(function () { InitPage();//准备页面 ItinPahoClient();//准备链接 }); //核心方法:通过MQtt连接 function ItinPahoClient() { //地址 端口 链接名称(不是主题) var client = new Paho.Client("没神的IP,大伙都知道", 61614, "jsclient"); //监听事件 client.onMessageArrived = function (msg) { //收到消息 messagebox.append("接收到消息:" + msg.payloadString); $('#textbox').val(''); }; //链接配置 client.connect({ onSuccess: function () { messagebox.append('链接成功'); //订阅主题为myqueue client.subscribe("myqueue"); //发布消息,主题为myqueue2 //client.publish("myqueue2", "Message from js client"); } }); } //发送消息 function setmessage() { var v = $('#textbox').val(); bsEx.dopostback('@Url.Action("SetMessage")', {"msg":v}, function (t) { eval('(' + t + ')'); }); } ///初始化页面 function InitPage() { //表单 new bsEx.ItemForm({ id: "form1", renderto: '#form1', items: [ { type: 'textarea', name: 'messagebox', title: '消息', height: '300px' }, { type: 'text', name: 'textbox', title: '发送' } ], colunb: 1, showlabel: false, css: { 'width': '500px' } }).init().attr("onkeydown","if(event.keyCode == 13) { return false; }"); //发送按钮 var btn = $('#textbox').addbutton("发送"); btn.on('click', function () { setmessage(); }) $('#footer span').prepend("v" + $.fn.bsEx); //重写append 加个回车 messagebox = $('#messagebox'); messagebox.append = function () { arguments[0] = arguments[0] +' \r\n '; ($.fn.append).apply(this,arguments); } messagebox.append('...链接中'); } //再text后面加一个button $.fn.addbutton = function (text) { $(this).parent().addClass('input-group'); var bid = $(this).attr('id') + '-btn'; var b = $('<span>' + text + '</span >'); $(this).after(b); $(this).attr("onkeydown", "if(event.keyCode == 13) { setmessage(); }"); return $(b); } </script> }