亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        地震信息微信自動(dòng)發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2014-08-28 02:15:21葉佳寧
        華北地震科學(xué) 2014年4期
        關(guān)鍵詞:數(shù)據(jù)庫(kù)微信用戶(hù)

        葉佳寧, 何 霆

        (1.廣東省地震局,廣州 510070;2. 中國(guó)地震局地震監(jiān)測(cè)與減災(zāi)技術(shù)重點(diǎn)實(shí)驗(yàn)室,廣州 510070;3. 廣東省地震預(yù)警與重大工程安全診斷重點(diǎn)實(shí)驗(yàn)室(籌),廣州 510070)

        地震信息微信自動(dòng)發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        葉佳寧1,2,3, 何 霆1,2,3

        (1.廣東省地震局,廣州 510070;2. 中國(guó)地震局地震監(jiān)測(cè)與減災(zāi)技術(shù)重點(diǎn)實(shí)驗(yàn)室,廣州 510070;
        3. 廣東省地震預(yù)警與重大工程安全診斷重點(diǎn)實(shí)驗(yàn)室(籌),廣州 510070)

        地震信息微信自動(dòng)發(fā)布系統(tǒng)基于原有的地震速報(bào)系統(tǒng),以微信為平臺(tái),實(shí)現(xiàn)“南粵防震減災(zāi)”官方微信對(duì)國(guó)內(nèi)地震信息在微信平臺(tái)的快速、自動(dòng)發(fā)布。介紹了系統(tǒng)的設(shè)計(jì)模式,實(shí)現(xiàn)的關(guān)鍵技術(shù)和在地震行業(yè)中的應(yīng)用,以及系統(tǒng)未來(lái)開(kāi)發(fā)的思路拓展。

        地震信息;微信;自動(dòng)發(fā)布

        0 引言

        越來(lái)越多的用戶(hù)使用微信,是一個(gè)不爭(zhēng)的事實(shí)。2013年初,微信用戶(hù)突破三億。微信模仿了微博的模式,微博上的名人,會(huì)有很多粉絲關(guān)注,同樣,在微信上,也是如此的模式,但卻在細(xì)節(jié)方面,優(yōu)于微博。因此微信作為一種新的信息傳播方式使人們能夠更加方便、快捷、全面地認(rèn)知各種信息。許多行業(yè)意識(shí)到微信的發(fā)展前景及用戶(hù)量,將其作為自身信息的發(fā)布平臺(tái)之一,或者作為擴(kuò)大影響力的重要宣傳手段之一。在地震行業(yè),微信正慢慢成為民眾與政府的重要媒介平臺(tái)。

        地震部門(mén)可通過(guò)微信平臺(tái)對(duì)民眾提供實(shí)時(shí)有效的地震信息,并以此作為地震信息發(fā)布的主要渠道之一。因此,只要稍加開(kāi)發(fā),地震部門(mén)便可以將其作為與民眾良好的溝通橋梁。

        1 系統(tǒng)設(shè)計(jì)

        1.1 總體結(jié)構(gòu)

        地震信息微信自動(dòng)發(fā)布系統(tǒng)總體上分為客戶(hù)端和服務(wù)器端,其基本架構(gòu)如圖1所示:

        圖1 地震信息微信自動(dòng)發(fā)布系統(tǒng)模塊組成圖

        系統(tǒng)采用輕量級(jí)、松耦合架構(gòu),通過(guò)微信公眾平臺(tái)自定義接口作為I/O通道,構(gòu)建基于微信平臺(tái)的地震速報(bào)服務(wù)端,負(fù)責(zé)地震信息和用戶(hù)信息處理,向48小時(shí)活躍的關(guān)注用戶(hù)發(fā)送圖文并茂的地震訊息,客戶(hù)端進(jìn)行接收。

        1.2 系統(tǒng)流程

        當(dāng)某個(gè)地方發(fā)生地震,由地震速報(bào)系統(tǒng)進(jìn)行地震三要素(時(shí)間、地點(diǎn)、震級(jí))的確定并將地震信息錄入地震訊息數(shù)據(jù)庫(kù),之后觸發(fā)地震信息微信發(fā)布模塊,將地震信息以圖文并茂的方式推送給48小時(shí)活躍的關(guān)注用戶(hù)。簡(jiǎn)單來(lái)說(shuō)系統(tǒng)采用自動(dòng)化方式將收集到的地震信息通過(guò)微信平臺(tái)公布在互聯(lián)網(wǎng)上,全過(guò)程采用自動(dòng)處理方式進(jìn)行,保證了數(shù)據(jù)傳遞的快速、穩(wěn)定和準(zhǔn)確(圖1)。

        2 關(guān)鍵技術(shù)

        2.1 地震速報(bào)系統(tǒng)

        地震自動(dòng)速報(bào)系統(tǒng)[1-2]采用實(shí)時(shí)仿真技術(shù),以地震儀原理為基礎(chǔ),以擺的反應(yīng)作為仿真平臺(tái)提出仿真算法,整合測(cè)震、強(qiáng)震等多類(lèi)型資源對(duì)地震進(jìn)行三要素的確定,最后通過(guò)部署在國(guó)家地震臺(tái)網(wǎng)中心的自動(dòng)EQIM 服務(wù)器進(jìn)行匯集和轉(zhuǎn)發(fā),并將自動(dòng)地震速報(bào)信息以短信形式發(fā)送至地震系統(tǒng)內(nèi)部人員。

        2.2 微信平臺(tái)地震信息發(fā)布模塊

        微信公眾平臺(tái)的開(kāi)發(fā)可以使用PHP、ASP、JSP等多種技術(shù)構(gòu)建。本系統(tǒng)以南粵防震減災(zāi)的微信公眾號(hào)為基礎(chǔ),采用PHP技術(shù)搭建服務(wù)端,客戶(hù)端網(wǎng)頁(yè)的呈現(xiàn)采用JQuery技術(shù)來(lái)搭建。具體環(huán)境配置如下:

        (1) 操作系統(tǒng):windows 2008;

        (2) 數(shù)據(jù)庫(kù):SQL Server 2000;

        (3) Web服務(wù)器:Apache,端口:80。

        2.2.1 接口的申請(qǐng)和接入

        首先,到微信公眾平臺(tái)(http://mp.weixin.qq.com)申請(qǐng)公眾平臺(tái)帳號(hào),然后到指定頁(yè)面申請(qǐng)消息接口,填寫(xiě)網(wǎng)址url和token,其中:token可以任意填寫(xiě),用作生成簽名[3]。

        提交信息后,微信服務(wù)器將發(fā)送GET請(qǐng)求到填寫(xiě)的URL上,并且?guī)?個(gè)參數(shù),如表1所示:

        表1 微信校驗(yàn)參數(shù)

        Server端通過(guò)檢驗(yàn)signature對(duì)請(qǐng)求進(jìn)行校驗(yàn)。若確認(rèn)此次GET請(qǐng)求來(lái)自微信服務(wù)器,原樣返回echostr參數(shù)內(nèi)容,接入生效,否則接入失敗。

        具體代碼如下:

        function wxVerify(){

        $signature=$_GET["signature"];

        $timestamp=$_GET["timestamp"];

        $nonce=$_GET["nonce"];

        $token=TOKEN;

        $tmpArr=array($token, $timestamp, $nonce);

        sort($tmpArr);

        $tmpStr=implode( $tmpArr );

        $tmpStr=sha1( $tmpStr );

        return $tmpStr==$signature?$_GET["echostr"]:"";

        }

        正確接入后執(zhí)行后續(xù)開(kāi)發(fā)流程。

        2.2.2 觸發(fā)機(jī)制

        為了保證服務(wù)器端資源的最低損耗,系統(tǒng)摒棄對(duì)數(shù)據(jù)庫(kù)輪詢(xún)的傳統(tǒng)方式,采用有地震則觸發(fā)的機(jī)制。當(dāng)?shù)卣鸢l(fā)生時(shí),通過(guò)地震速報(bào)系統(tǒng)獲取地震三要素并通過(guò)POST方式獲取最新地震信息的三要素并錄入數(shù)據(jù)庫(kù),關(guān)鍵代碼如下:

        $action=$_REQUEST["do"];//傳遞有新的地震信息

        if(false);

        else if($action);

        else {

        $time = $_REQUEST["time"];//獲取發(fā)震時(shí)間

        $loc = $_REQUEST["loc"];//獲取發(fā)震地點(diǎn)

        $lon = $_REQUEST["lon"];//獲取發(fā)震經(jīng)度

        $lat = $_REQUEST["lat"];//獲取發(fā)震緯度

        $mag = $_REQUEST["mag"];//獲取發(fā)震震級(jí)

        $depth = $_REQUEST["depth"];//獲取震源深度

        if($conn = getConn()) {

        sqlExec($conn, "INSERT INTO eqimlogs VALUES ('${status}', '${time}', GETDATE(), '".$loc."', ${lon}, ${lat}, '".utf8ToGB2312($mag)."', ${depth})");//寫(xiě)入數(shù)據(jù)庫(kù)

        closeConn($conn);//關(guān)閉數(shù)據(jù)庫(kù)

        }

        }

        ?>

        發(fā)布平臺(tái)集成了網(wǎng)站、微博[4]、微信等對(duì)新地震消息的自動(dòng)發(fā)布。當(dāng)網(wǎng)頁(yè)被訪(fǎng)問(wèn)時(shí),需要執(zhí)行一條數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)句,對(duì)發(fā)布目標(biāo)地點(diǎn)進(jìn)行查詢(xún)。為此,針對(duì)微信,筆者在數(shù)據(jù)庫(kù)中存入微信發(fā)布的url地址,進(jìn)行下一步的發(fā)布工作。在微信服務(wù)器端,在觸發(fā)網(wǎng)頁(yè)被訪(fǎng)問(wèn)時(shí)執(zhí)行網(wǎng)頁(yè)中的PHP代碼來(lái)完成觸發(fā)過(guò)程,如圖2所示。

        圖2 觸發(fā)機(jī)制流程圖

        關(guān)鍵代碼如下:

        if($rs=sqlQuery("SELECT [value] AS [url] FROM [config] WHERE [key] LIKE 'rrmsg.%'"))//在數(shù)據(jù)庫(kù)中查詢(xún)需要發(fā)布的目標(biāo)地點(diǎn)

        {

        require_once($_SERVER["DOCUMENT_ROOT"]."/http.php");

        foreach($rs as $r)

        try{ HttpClient::asyncGet($r["url"]); } //對(duì)數(shù)據(jù)信息進(jìn)行異步獲取

        catch(Exception $e) { }//數(shù)據(jù)庫(kù)信息異常狀況的獲取

        }

        ?>

        由于地震速報(bào)系統(tǒng)和微信服務(wù)端是獨(dú)立運(yùn)行的兩個(gè)系統(tǒng),為保證地震速報(bào)系統(tǒng)和微信服務(wù)端7×24小時(shí)的連通率,在兩個(gè)獨(dú)立運(yùn)行的系統(tǒng)間采用了心跳機(jī)制。地震速報(bào)系統(tǒng)每隔5 s主動(dòng)向微信服務(wù)端發(fā)送通信消息,通信消息的發(fā)送通過(guò)訪(fǎng)問(wèn)網(wǎng)頁(yè)的形式進(jìn)行。如兩邊通信正常則網(wǎng)頁(yè)訪(fǎng)問(wèn)成功,便在當(dāng)前目錄建立標(biāo)識(shí)文件。微信服務(wù)端以5 s 的間隔對(duì)標(biāo)識(shí)文件進(jìn)行檢測(cè),并以檢測(cè)文件是否存在作為通信是否正常的判斷標(biāo)準(zhǔn)。如標(biāo)識(shí)文件存在則說(shuō)明通信正常,如標(biāo)識(shí)文件不存在則說(shuō)明網(wǎng)頁(yè)訪(fǎng)問(wèn)失敗,通過(guò)短信告訴地震速報(bào)系統(tǒng)管理員和微信管理員。心跳機(jī)制使兩套系統(tǒng)松耦合,在保證連通率的情況下同時(shí)也便于不同管理員的管理。

        $lockfile="timeout.lock";

        if(file_exists($lockfile));//如文件存在證明訪(fǎng)問(wèn)成功,連通正常

        else {//否則把中斷時(shí)間寫(xiě)入timeout.lock文件中,以便故障查詢(xún)

        file_put_contents($lockfile, time());

        eq12322SendGroup(array($admin_phone1="xxx", $admin_phone2="xxx"), "短信網(wǎng)關(guān)的心跳信號(hào)于".date("d日H時(shí)i分s秒")."斷開(kāi)。");//通信斷開(kāi)發(fā)送短信至管理員

        sqlExec(null, "INSERT INTO [hblogs] VALUES('d', GETDATE())");//通信中斷信息寫(xiě)入數(shù)據(jù)庫(kù)

        unlink(timeout.lock);//刪除timeout.lock文件

        }

        ?>

        2.2.3 發(fā)布機(jī)制

        接入微信公眾平臺(tái)后,可使用后臺(tái)服務(wù)與用戶(hù)互動(dòng)。通過(guò)公眾號(hào)向用戶(hù)發(fā)送消息,在微信平臺(tái)中有2種方式:微信平臺(tái)每月4次的群發(fā)消息和48小時(shí)的活躍用戶(hù)單獨(dú)發(fā)消息。群發(fā)消息指所有關(guān)注此公眾號(hào)的用戶(hù)都可收到群發(fā)消息;48小時(shí)活躍用戶(hù)消息指的是用戶(hù)給公眾號(hào)發(fā)送的最后一次消息(文字、圖片、視頻、地理位置、菜單互動(dòng))開(kāi)始的48小時(shí)之內(nèi),公眾號(hào)可以單獨(dú)給用戶(hù)發(fā)送消息。由于群發(fā)消息的規(guī)則根本不能滿(mǎn)足地震消息事件發(fā)布的需求,因此,本系統(tǒng)采用48小時(shí)活躍用戶(hù)的方式給用戶(hù)自動(dòng)推送實(shí)時(shí)的地震消息。自動(dòng)發(fā)布的關(guān)鍵代碼如下:

        function dzkx($fromUsername,$toUsername)

        {

        $newsTpl = "

        <!]>

        ";//根據(jù)微信提供的開(kāi)發(fā)接口,設(shè)置發(fā)送信息的xml格式

        $rs=sqlQueryRow("SELECT TOP 1 * FROM [xxx] WHERE (type='".utf8ToGBK("正式速報(bào)")."') OR (type='".gbkToUTF8("自動(dòng)速報(bào)")."') ORDER BY [dt_ins] DESC")//從數(shù)據(jù)庫(kù)中獲取最新地震消息

        $a=odbc_fetch_row($rs);

        $ch = curl_init();

        curl_setopt ($ch, CURLOPT_URL, $url);//設(shè)置要訪(fǎng)問(wèn)的IP

        curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);//模擬用戶(hù)使用的瀏覽器

        curl_setopt ($ch, CURLOPT_TIMEOUT, 60); //設(shè)置超時(shí)時(shí)間

        $result = curl_exec($ch);

        curl_close($ch);

        $contentStr="據(jù)廣東省地震臺(tái)網(wǎng)測(cè)定,北京時(shí)間".odbc_result($rs,"dt");.",在".odbc_result($rs,"loc");."(".odbc_result($rs,"lon");."度,".odbc_result($rs,"lat");"度),發(fā)生震級(jí)M".odbc_result($rs,"mag");."地震,震源深度".odbc_result($rs,"depth");."。";

        $contentStr=mb_convert_encoding($contentStr,"utf-8","GBK");

        $msgType="news";

        $time = time();

        $title="地震快訊";

        $title=mb_convert_encoding($title,"utf-8","GBK");

        $resultStr = sprintf($newsTpl, $fromUsername, $toUsername, $time, $msgType, "1", $title,$contentStr,$picurl,$link);

        echo $resultStr;//向某個(gè)用戶(hù)發(fā)送消息

        odbc_close($conn);

        }

        當(dāng)用戶(hù)關(guān)注公眾號(hào)時(shí),系統(tǒng)獲取用戶(hù)在微信平臺(tái)的各類(lèi)信息,并將用戶(hù)的所有信息都存入服務(wù)端的數(shù)據(jù)庫(kù)中,其中包括用戶(hù)與公眾號(hào)的最后一次互動(dòng)時(shí)間,以此作為用戶(hù)活躍度的計(jì)算。為保證用戶(hù)都處在活躍度期間而收到及時(shí)有效的地震信息,微信服務(wù)端將用異步的方式對(duì)數(shù)據(jù)庫(kù)中用戶(hù)的互動(dòng)時(shí)間進(jìn)行輪詢(xún),在用戶(hù)即將超過(guò)48小時(shí)活躍期時(shí),給用戶(hù)發(fā)送消息進(jìn)行提醒,如圖3所示。關(guān)鍵代碼如下:

        if($_REQUEST["fade"])

        {

        if($rs=sqlQuery("SELECT 172800-DATEDIFF(SECOND, [dt_u], GETDATE()) AS [active], [openid] FROM [user] WHERE (172800-DATEDIFF(SECOND, [dt_u], GETDATE())>=0) AND (172800-DATEDIFF(SECOND, [dt_u], GETDATE())<60) ORDER BY [dt_s] ASC"))//篩選出即將超過(guò)48小時(shí)活躍期的用戶(hù)

        {

        $token=wxGrantAccessToken();//獲取微信TOKEN

        foreach($rs as $r)

        wxSend(wxMsgText($r["openid"], "我們抱歉地通知您: ".$r["active"]."秒后您將無(wú)法接收我們?yōu)槟扑偷男畔?如果您希望繼續(xù)接收 請(qǐng)隨意給我們發(fā)送一條信息 或者點(diǎn)擊我們?nèi)我庖粋€(gè)菜單項(xiàng) 以保持您的在線(xiàn)狀態(tài)"), $token);

        }

        }

        3 應(yīng)用實(shí)例

        廣東省地震局開(kāi)通的“南粵防震減災(zāi)”官方微信已得到微信平臺(tái)的官方認(rèn)證。在此公眾號(hào)已實(shí)現(xiàn)地震信息圖文方式的自動(dòng)發(fā)布。圖4為系統(tǒng)實(shí)際應(yīng)用的截圖,2014年5月30日23時(shí)53分在云南省德宏傣族景頗族自治州盈江縣(97.9°E,25.0°N)發(fā)生4.5級(jí)地震,震源深度5公里,系統(tǒng)于2014年5月31日00時(shí)02分向48小時(shí)活躍用戶(hù)推送了這條地震消息。

        圖3 消息提醒圖

        圖4 系統(tǒng)應(yīng)用效果圖

        4 結(jié)束語(yǔ)

        本文中地震信息微信自動(dòng)發(fā)布系統(tǒng)已成為廣東省地震信息發(fā)布的重要平臺(tái)之一。系統(tǒng)充分利用現(xiàn)有的資源與技術(shù),為民眾提供準(zhǔn)確、快速的地震信息。在微信平臺(tái)中,仍有許多可利用的方式,例如,災(zāi)情收集,烈度反饋,避難查詢(xún)等來(lái)搭建地震部門(mén)與民眾溝通的橋梁,在這方面將繼續(xù)拓寬思路,更好地服務(wù)于民眾。

        [1]楊陳,黃志斌,廖詩(shī)榮,等.全國(guó)自動(dòng)地震速報(bào)系統(tǒng)介紹[J].地震地磁觀(guān)測(cè)與研究,2010,31 (5):158-161.

        [2]劉勝?lài)?guó),高景春,陳智勇. 基于ActiveMQ平臺(tái)的地震消息服務(wù)探討[J]. 華北地震科學(xué),2012,30(2):39-42.

        [3]微信公眾平臺(tái)開(kāi)發(fā)者文檔[EB/OL].http://mp.weixin.qq.com/wiki/index.php?title=消息接口指南,2014-03-03.

        [4]葉佳寧,何霆. 地震信息微博自動(dòng)發(fā)布系統(tǒng)的設(shè)計(jì)與應(yīng)用[J].華南地震, 2012, 32(4): 82-87.

        Design and Implementation of Earthquake Message WeChat Automatic Release System

        YE Jia-ning1,2,3, HE Ting1,2,3

        (1.Earthquake Administration of Guangdong Province, Guangzhou, 510070, China;
        2. Key Laboratory of Earthquake Monitoring and Disaster Mitigation Technology, CEA Guangzhou510070, China;
        3. Key Laboratory of Guangdong Province Earthquake Early Warning and Safety Diagnosis
        of Major Projects, Guangzhou 510070, China)

        Based on former earthquake quick report system and WeChat platform, the earthquake information WeChat automatic release system implements the WeChat “Southern Guangdong Earthquake Mitigation Disaster” quickly and automatically publishing earthquake information in WeChat platform. This paper describes the design model, the key technology, the application in the earthquake field, and system development train of thought to expand in the future.

        earthquake information; WeChat; automatic release

        10.3969/j.issn.1003-1375.2014.04.005

        2014-10-20

        “廣東省突發(fā)公共事件應(yīng)急技術(shù)研究中心”項(xiàng)目(項(xiàng)目編號(hào):2012A032100003)

        葉佳寧(1985—),女,工程師,主要從事地震應(yīng)急、信息網(wǎng)絡(luò)技術(shù)研究.E-mail: 510889962@qq.com.

        P315.69

        A

        1003-1375(2014)04-0023-06

        猜你喜歡
        數(shù)據(jù)庫(kù)微信用戶(hù)
        微信
        數(shù)據(jù)庫(kù)
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        數(shù)據(jù)庫(kù)
        關(guān)注用戶(hù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        微信
        微信
        久久香蕉国产线看观看网| 国产三级a三级三级| 天堂新版在线资源| 人人妻人人澡人人爽人人精品电影| 亚洲精品自拍视频在线观看| 日韩日本国产一区二区| 亚洲av无码国产精品色午夜软件 | 男女性杂交内射妇女bbwxz| 亚洲精品无码mv在线观看| 国产精品久久久亚洲第一牛牛| 人妻少妇被猛烈进入中文| 色偷偷偷在线视频播放| 亚洲av无码不卡| 91福利国产在线观看网站| 日本中文字幕有码在线播放| 亚洲人成电影网站色| 久久久久久久综合狠狠综合| www.av在线.com| 青青草好吊色在线观看| 被三个男人绑着躁我好爽视频| 婷婷成人亚洲| 亚洲天堂av大片暖暖| 91久久精品色伊人6882| 国产午夜精品一区二区三区软件 | 国产黄色一区二区福利| 亚洲av久播在线一区二区 | 粉嫩少妇内射浓精videos| 扒下语文老师的丝袜美腿| 后入丝袜美腿在线观看| 18女下面流水不遮图| 伊人婷婷色香五月综合缴激情| 我的美艳丝袜美腿情缘| 夜夜爽妓女8888888视频| 国产成+人+综合+亚洲 欧美 | 亚洲av午夜福利精品一区不卡| 少女韩国电视剧在线观看完整| 亚洲天堂在线播放| 日本一区二区日韩在线| 精品国产天堂综合一区在线 | 区三区久久精品水蜜桃av| 黑人大群体交免费视频|