AlarmBarClient.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. var option = {
  2. //mqtt客户端的id,这里面应该还可以加上其他参数,具体看官方文档
  3. clientId: 'mqttjs_' + (Math.random() * 1000000).toString(),
  4. timeout: 5000,
  5. useSSL: false
  6. }
  7. var alarmMqttClient = mqtt.connect("ws://localhost:8384/mqtt", option);
  8. alarmMqttClient.on('connect', function () {
  9. console.log("alarm bar connected to mqtt server successfully");
  10. alarmMqttClient.subscribe('/sys/+/+/thing/event/OnAlarm/+', function(err) {
  11. if (err) {
  12. console.log("subscribe OnAlarm event failed, error info:"+err);
  13. }
  14. });
  15. });
  16. alarmMqttClient.on('message', function (topic, message) {
  17. var reg = RegExp(/OnAlarm/);
  18. if (topic.toString().match(reg)) {
  19. ProcessAlarmInformations(JSON.parse(message.toString()));
  20. }
  21. });
  22. function ProcessAlarmInformations(message) {
  23. if (message == null || message.Alarms == null || !Array.isArray(message.Alarms)) {
  24. console.log("Invalid alarm message received");
  25. return;
  26. }
  27. message.Alarms.forEach(function(alarm) {
  28. var temp = {
  29. "Key": alarm.TankNumber+alarm.Type, "Description": alarm.Description, "OccurTime": alarm.CreatedTimeStamp, "Module": "ATG", "Severity": alarm.Priority, "Action": null
  30. };
  31. AddAlarmInfomation(JSON.stringify(temp));
  32. });
  33. }
  34. //message is a json string
  35. function AddAlarmInfomation(message) {
  36. $.ajax({
  37. url: "/AlarmBar/AddInformation",
  38. contentType: 'application/json',
  39. data: message,
  40. type: 'post',
  41. success: function (res) {
  42. console.log("Alarm information added successfully");
  43. },
  44. error: function (msg) {
  45. console.log(msg);
  46. }
  47. });
  48. }
  49. //the key should be the same as it used when added into alarm bar
  50. function RemoveAlarmInfomationByKey(key) {
  51. $.ajax({
  52. url: "/AlarmBar/RemoveInformation?key="+key,
  53. contentType: 'application/json',
  54. //data: message,
  55. type: 'post',
  56. success: function (res) {
  57. console.log("Alarm information removed successfully, the key is:"+key);
  58. },
  59. error: function (msg) {
  60. console.log(msg);
  61. }
  62. });
  63. }