初始化
This commit is contained in:
341
MQTTServerSideAPI/Global.asax.cs
Normal file
341
MQTTServerSideAPI/Global.asax.cs
Normal file
@@ -0,0 +1,341 @@
|
||||
using FluentScheduler;
|
||||
using MQTTServerSideAPI.Controllers;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Optimization;
|
||||
using System.Web.Routing;
|
||||
using TencentCloud.Common.Profile;
|
||||
using TencentCloud.Common;
|
||||
using WebGrease;
|
||||
using MySql.Data.MySqlClient;
|
||||
using TencentCloud.Iotcloud.V20180614;
|
||||
using TencentCloud.Iotcloud.V20180614.Models;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Threading;
|
||||
|
||||
namespace MQTTServerSideAPI
|
||||
{
|
||||
|
||||
|
||||
|
||||
public class WebApiApplication : System.Web.HttpApplication
|
||||
{
|
||||
protected void Application_Start()
|
||||
{ //ע<>붨ʱ<EBB6A8><CAB1><EFBFBD><EFBFBD>
|
||||
MyRegistry.GoWork();
|
||||
AreaRegistration.RegisterAllAreas();
|
||||
GlobalConfiguration.Configure(WebApiConfig.Register);
|
||||
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
|
||||
RouteConfig.RegisterRoutes(RouteTable.Routes);
|
||||
BundleConfig.RegisterBundles(BundleTable.Bundles);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public class MyRegistry : Registry
|
||||
{
|
||||
public static string strSqliteConn = @"Server=blv-cloud-db.mysql.rds.aliyuncs.com;Database=mqqtmysql;Uid=blv_rcu;Pwd=fnadiaJDIJ7546;charset=utf8;port=3307;";
|
||||
|
||||
//<2F>ι<DEB2><CEB9>캯<EFBFBD><ECBAAF>
|
||||
public MyRegistry()
|
||||
{
|
||||
//ÿ30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>豸״̬
|
||||
Schedule(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
// ʵ<><CAB5><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD>˻<EFBFBD> SecretId <20><> SecretKey<65><79><EFBFBD>˴<EFBFBD><CBB4><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>Կ<EFBFBD>Եı<D4B5><C4B1><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>й¶<D0B9><C2B6><EFBFBD>ܻᵼ<DCBB><E1B5BC> SecretId <20><> SecretKey й¶<D0B9><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>İ<EFBFBD>ȫ<EFBFBD>ԡ<EFBFBD><D4A1><EFBFBD><EFBFBD>´<EFBFBD><C2B4><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><C3B8><EFBFBD>ȫ<EFBFBD>ķ<EFBFBD>ʽ<EFBFBD><CABD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><CEBC><EFBFBD>https://cloud.tencent.com/document/product/1278/85305
|
||||
// <20><>Կ<EFBFBD><D4BF>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨ https://console.cloud.tencent.com/cam/capi <20><><EFBFBD>л<EFBFBD>ȡ
|
||||
Credential cred = new Credential
|
||||
{
|
||||
SecretId = "AKIDKhz84sbEqFPRK1Uo0zUnwwjNp4884vc4",
|
||||
SecretKey = "JQ8qZGxgQAtbCfvxb7VqzxujOtFVb1KT"
|
||||
};
|
||||
// ʵ<><CAB5><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>clientѡ<74><EFBFBD><EEA3AC>ѡ<EFBFBD>ģ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ClientProfile clientProfile = new ClientProfile();
|
||||
// ʵ<><CAB5><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>httpѡ<70><EFBFBD><EEA3AC>ѡ<EFBFBD>ģ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
HttpProfile httpProfile = new HttpProfile();
|
||||
httpProfile.Endpoint = ("iotcloud.tencentcloudapi.com");
|
||||
clientProfile.HttpProfile = httpProfile;
|
||||
|
||||
// ʵ<><CAB5><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7>client<6E><74><EFBFBD><EFBFBD>,clientProfile<6C>ǿ<EFBFBD>ѡ<EFBFBD><D1A1>
|
||||
IotcloudClient client = new IotcloudClient(cred, "ap-guangzhou", clientProfile);
|
||||
// ʵ<><CAB5><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,ÿ<><C3BF><EFBFBD>ӿڶ<D3BF><DAB6><EFBFBD><EFBFBD><EFBFBD>Ӧһ<D3A6><D2BB>request<73><74><EFBFBD><EFBFBD>
|
||||
DescribeDevicesRequest req = new DescribeDevicesRequest();
|
||||
req.ProductId = "HICL5RNXAU";
|
||||
req.Offset = 0;
|
||||
req.Limit = 250;
|
||||
// <20><><EFBFBD>ص<EFBFBD>resp<73><70>һ<EFBFBD><D2BB>DescribeDevicesResponse<73><65>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
|
||||
DescribeDevicesResponse resp = client.DescribeDevicesSync(req);
|
||||
// <20><><EFBFBD><EFBFBD>json<6F><6E>ʽ<EFBFBD><CABD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ذ<EFBFBD>
|
||||
var abs = AbstractModel.ToJsonString(resp);
|
||||
apifanhinfo shujiu = JsonConvert.DeserializeObject<apifanhinfo>(abs);
|
||||
DataSet ds = new DataSet();
|
||||
|
||||
string strSqlCmd = "SELECT DeviceName,Online FROM deviceinformation ";
|
||||
using (MySqlConnection connection = new MySqlConnection(strSqliteConn))
|
||||
{
|
||||
|
||||
using (MySqlCommand cmd = new MySqlCommand())
|
||||
{
|
||||
connection.Open();
|
||||
cmd.Connection = connection;
|
||||
MySqlDataAdapter command = new MySqlDataAdapter(strSqlCmd, connection);
|
||||
command.Fill(ds);
|
||||
}
|
||||
}
|
||||
List<string> devname = new List<string>();
|
||||
List<int> devOnline = new List<int>();
|
||||
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
|
||||
{
|
||||
string namessdd = ds.Tables[0].Rows[i]["DeviceName"].ToString();
|
||||
int on = int.Parse(ds.Tables[0].Rows[i]["Online"].ToString());
|
||||
devOnline.Add(on);
|
||||
devname.Add(namessdd);
|
||||
}
|
||||
string sql = "";
|
||||
List<deviceinformation> list = shujiu.Devices.Where(x => devname.Contains(x.DeviceName)).ToList();
|
||||
|
||||
List<deviceinformation> lists = shujiu.Devices.Where(x => !devname.Contains(x.DeviceName)).ToList();
|
||||
|
||||
string ip = "";
|
||||
|
||||
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
||||
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
||||
foreach (NetworkInterface networkInterface in interfaces)
|
||||
{
|
||||
// <20><>ȡIP<49><50>ַ
|
||||
IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();
|
||||
UnicastIPAddressInformationCollection ipAddresses = ipProperties.UnicastAddresses;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>IP<49><50>ַ
|
||||
foreach (UnicastIPAddressInformation ipAddress in ipAddresses)
|
||||
{
|
||||
// <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>ΪIPv4<76><34>ַ
|
||||
if (ipAddress.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
|
||||
{
|
||||
//<2F><><EFBFBD>˱<EFBFBD><CBB1><EFBFBD>ip
|
||||
if (ipAddress.Address.ToString() != "127.0.0.1")
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ip
|
||||
ip = ipAddress.Address.ToString();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
sql = "insert into programeventlog(eventname,modifycontent,ip,ctime) value(";
|
||||
sql += "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>ı<DEB8><C4B1><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>豸״̬<D7B4><CCAC>ÿ30<33><30>ִ<EFBFBD><D6B4>һ<EFBFBD><D2BB>',";
|
||||
sql += "'ȫ<><C8AB><EFBFBD>豸',";
|
||||
//sql += list[i].Online + ",";
|
||||
sql += "'" + ip + "',";
|
||||
sql += "'" + DateTime.Now + "')";
|
||||
using (MySqlConnection connection = new MySqlConnection(strSqliteConn))
|
||||
{
|
||||
using (MySqlCommand cmd = new MySqlCommand())
|
||||
{
|
||||
connection.Open();
|
||||
cmd.Connection = connection;
|
||||
cmd.CommandText = sql;
|
||||
int retRecAffected = cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
if (list.Count() > 0)
|
||||
{ //sql<71><6C><EFBFBD><EFBFBD>
|
||||
//UPDATE deviceinformation set Online = 1 where DeviceName = 'F305-00178'
|
||||
for (int i = 0; i < list.Count(); i++)
|
||||
{
|
||||
sql = "UPDATE deviceinformation set Online = ";
|
||||
sql += list[i].Online;
|
||||
sql += " where DeviceName = ";
|
||||
sql += "'" + list[i].DeviceName + "'";
|
||||
using (MySqlConnection connection = new MySqlConnection(strSqliteConn))
|
||||
{
|
||||
using (MySqlCommand cmd = new MySqlCommand())
|
||||
{
|
||||
connection.Open();
|
||||
cmd.Connection = connection;
|
||||
var strSql = sql;
|
||||
cmd.CommandText = strSql;
|
||||
int retRecAffected = cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (list[i].Online == 0 || list[i].Online == 3)
|
||||
{
|
||||
sql = "UPDATE deviceinformation set districtinfo = ";
|
||||
sql += "' ',";
|
||||
sql += "powerintakestatus=";
|
||||
sql += "' ',";
|
||||
sql += "Power=";
|
||||
sql += "' ',";
|
||||
sql += "pir1status=";
|
||||
sql += "' ',";
|
||||
sql += "pir2status=";
|
||||
sql += "' ',";
|
||||
sql += "pir3status=";
|
||||
sql += "' ',";
|
||||
sql += "pir4status=";
|
||||
sql += "' ',";
|
||||
sql += "gatemagnetstatus=";
|
||||
sql += "' '";
|
||||
sql += " where DeviceName = ";
|
||||
sql += "'" + list[i].DeviceName + "'";
|
||||
using (MySqlConnection connection = new MySqlConnection(strSqliteConn))
|
||||
{
|
||||
using (MySqlCommand cmd = new MySqlCommand())
|
||||
{
|
||||
connection.Open();
|
||||
cmd.Connection = connection;
|
||||
var strSql = sql;
|
||||
cmd.CommandText = strSql;
|
||||
int retRecAffected = cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (lists.Count() > 0)
|
||||
{
|
||||
//sql<71><6C><EFBFBD><EFBFBD>
|
||||
// insert into deviceinformation(DeviceName, Online, LoginTime, Version,
|
||||
//DeviceCert, DevicePsk, DeviceType, Imei, Isp, ConnIP, LastUpdateTime, LoraDevEui,LoraMoteType, FirstOnlineTime, LastOfflineTime, CreateTime, LogLevel, CertState, EnableState,
|
||||
//ClientIP, FirmwareUpdateTime, CreateUserId, NBIoTDeviceID)value(
|
||||
//'1', 1, '1211321', '12331424', '123424242253', 'bdsnnskj', 2, 'daghj', 'safdag', 'vsghs','11', '1213', 1, 'wqewe', 'ahdauf', 'adawd', 12, 2, 3, 'dwda', 'dada', 12, '1221212')
|
||||
for (int i = 0; i < lists.Count(); i++)
|
||||
{
|
||||
sql = "insert into deviceinformation(DeviceName, Online, LoginTime, Version,DeviceCert, DevicePsk, DeviceType, Imei, Isp, ConnIP, LastUpdateTime, LoraDevEui,LoraMoteType, FirstOnlineTime, LastOfflineTime, CreateTime, LogLevel, CertState, EnableState,ClientIP, FirmwareUpdateTime, CreateUserId, NBIoTDeviceID) value(";
|
||||
sql += "'" + lists[i].DeviceName + "',";
|
||||
sql += lists[i].Online + ",";
|
||||
sql += "'" + lists[i].LoginTime + "',";
|
||||
sql += "'" + lists[i].Version + "',";
|
||||
sql += "'" + lists[i].DeviceCert + "',";
|
||||
sql += "'" + lists[i].DevicePsk + "',";
|
||||
sql += lists[i].DeviceType + ",";
|
||||
sql += "'" + lists[i].Imei + "',";
|
||||
sql += "'" + lists[i].Isp + "',";
|
||||
sql += "'" + lists[i].ConnIP + "',";
|
||||
sql += "'" + lists[i].LastUpdateTime + "',";
|
||||
sql += "'" + lists[i].LoraDevEui + "',";
|
||||
sql += lists[i].LoraMoteType + ",";
|
||||
sql += "'" + lists[i].FirstOnlineTime + "',";
|
||||
sql += "'" + lists[i].LastOfflineTime + "',";
|
||||
sql += "'" + lists[i].CreateTime + "',";
|
||||
sql += lists[i].LogLevel + ",";
|
||||
sql += lists[i].CertState + ",";
|
||||
sql += lists[i].EnableState + ",";
|
||||
sql += "'" + lists[i].ClientIP + "',";
|
||||
sql += "'" + lists[i].FirmwareUpdateTime + "',";
|
||||
sql += lists[i].CreateUserId + ",";
|
||||
sql += "'" + lists[i].NBIoTDeviceID + "')";
|
||||
using (MySqlConnection connection = new MySqlConnection(strSqliteConn))
|
||||
{
|
||||
using (MySqlCommand cmd = new MySqlCommand())
|
||||
{
|
||||
connection.Open();
|
||||
cmd.Connection = connection;
|
||||
var strSql = sql;
|
||||
cmd.CommandText = strSql;
|
||||
int retRecAffected = cmd.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
//SQLiteDBHelper.ClearAllCallinRecord();
|
||||
//if (!SyncHotelServer.SyncHotelGroups())
|
||||
// Logs.WriteTimingUDPLog("2:00ִ<30>ж<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>--<2D><><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʧ<EFBFBD><CAA7>~");
|
||||
}).ToRunNow().AndEvery(30).Seconds();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ִ<EFBFBD>У<EFBFBD>֮<EFBFBD><D6AE>ÿ<EFBFBD>µĵ<C2B5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ3<D2BB><33><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
|
||||
//Schedule(() =>
|
||||
//{
|
||||
// string sql = "";
|
||||
// string ip = "";
|
||||
|
||||
// // <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
||||
// NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
|
||||
|
||||
// // <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
||||
// foreach (NetworkInterface networkInterface in interfaces)
|
||||
// {
|
||||
// // <20><>ȡIP<49><50>ַ
|
||||
// IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();
|
||||
// UnicastIPAddressInformationCollection ipAddresses = ipProperties.UnicastAddresses;
|
||||
|
||||
// // <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>IP<49><50>ַ
|
||||
// foreach (UnicastIPAddressInformation ipAddress in ipAddresses)
|
||||
// {
|
||||
// // <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD>ΪIPv4<76><34>ַ
|
||||
// if (ipAddress.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
|
||||
// {
|
||||
// //<2F><><EFBFBD>˱<EFBFBD><CBB1><EFBFBD>ip
|
||||
// if (ipAddress.Address.ToString() != "127.0.0.1")
|
||||
// {
|
||||
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ip
|
||||
// ip = ipAddress.Address.ToString();
|
||||
// }
|
||||
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// sql = "insert into programeventlog(eventname,modifycontent,ip,ctime) value(";
|
||||
// sql += "'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>uploginfo',";
|
||||
// sql += "'30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',";
|
||||
// //sql += list[i].Online + ",";
|
||||
// sql += "'" + ip + "',";
|
||||
// sql += "'" + DateTime.Now + "')";
|
||||
// using (MySqlConnection connection = new MySqlConnection(strSqliteConn))
|
||||
// {
|
||||
// using (MySqlCommand cmd = new MySqlCommand())
|
||||
// {
|
||||
// connection.Open();
|
||||
// cmd.Connection = connection;
|
||||
// cmd.CommandText = sql;
|
||||
// int retRecAffected = cmd.ExecuteNonQuery();
|
||||
// }
|
||||
// }
|
||||
// //log.LogTrace("job started at " + DateTime.Now);
|
||||
// //Thread.Sleep(10000);
|
||||
// //log.LogTrace("job ended at" + DateTime.Now);
|
||||
//}).ToRunNow().AndEvery(1).Months().OnTheFirst(DayOfWeek.Monday).At(3, 0);
|
||||
|
||||
|
||||
//Schedule(() =>
|
||||
//{
|
||||
|
||||
//}).ToRunNow().AndEvery(30).Seconds();
|
||||
//.ToRunEvery(0).Days().At(21, 00);
|
||||
//Schedule(() =>
|
||||
//{
|
||||
// SyncHotelServer.SyncAutho();
|
||||
//}).ToRunEvery(0).Days().At(2, 05);
|
||||
//ÿ<><C3BF>2<EFBFBD><32>
|
||||
//Schedule<MyJob>().ToRunEvery(0).Days().At(2, 10);
|
||||
}
|
||||
/// <summary>
|
||||
/// ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>Ȩ
|
||||
/// </summary>
|
||||
public static void GoWork()
|
||||
{
|
||||
JobManager.Initialize(new MyRegistry());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user