天氣推送伺服器

2021-07-31 22:31:09 字數 2038 閱讀 7112

1、主要功能

使用者通過天氣推送伺服器暴露出來的介面進行註冊,註冊完畢之後使用者可以新增一些自己的親朋好友的資訊。每天定時爬取全國的天氣,然後推送給使用者的親朋好友。

2、伺服器

伺服器使用的是乙個協程版本的web伺服器,支援get和post方法,底層用cgi方法處理帶引數的請求。伺服器對外暴露兩個介面,用來進行註冊和登入。

要登入的話,必須要有乙個賬號和密碼,可以通過註冊的介面進行註冊,註冊的資訊會存到資料庫中的login表中。登入成功之後會進入該使用者的主頁,該使用者可以在自己的主頁之中新增自己的親朋好友的資訊,這些新增的資訊會存到資料庫中的msg表中,伺服器後台程式會定時向該使用者的親朋好友推送天氣資訊。

http伺服器參考

3、爬蟲爬取全國天氣

使用scrapy框架,爬取全國的天氣,將爬取的結果直接存入到資料庫中的weather表中。

scrapy框架參考

4、資料庫中的表的結構

4.1、存放登入資訊

存放使用者資訊的表的格式如下,我們以使用者的tel資訊作為鍵值,保證每個使用者的資訊都不會出現重複。tel可以被用來在msg表裡面查詢該使用者的朋友的資訊。

4.2、存放使用者的朋友

msg表存使用者的親朋好友的資訊,其中tel是該使用者的**號碼,剩下的資訊是該使用者的朋友的資訊,其中最重要的兩列是city和value,city將來要被用來在weather表裡面查詢天氣,value記錄的是郵箱或者**被用於推送資訊。

4.3、存放天氣資訊

weather表用於儲存全國的天氣資訊。

5、天氣推送

5.1、天氣怎麼來???

由於天氣具有實時性,所以我們必須每天都要進行更新,為此我們可以設定定時任務,每天定時去啟動爬蟲控制指令碼,爬取全國天氣資訊。

5.2、推送給誰???

我們的天氣要推送給msg這張表裡面的所有人,用msg表裡面的city欄位的值到weather這張表裡面找對應城市的天氣,然後用郵件或簡訊傳送。

5.3、如何傳送郵件或簡訊

在本文中,我們以傳送郵件為例。我們可以先將msg表中的資訊拿到,然後去weather裡面找對應城市的天氣,找到之後建立乙個子程序去啟動乙個指令碼傳送郵件。整個過程我們可以設定定時任務完成。

6、結果展示

6.1、啟動伺服器,

6.2、登入/註冊介面

6.3、輸入賬號和密碼登入

6.4、進入到主頁,主頁中有」我的關係」的按鈕

6.5、進入我的關係頁面,可以在這個頁面中增刪查改該使用者的朋友關係

6.6、檢視該使用者的關係

6.7、顯示該使用者的所有朋友資訊

7、專案原始碼

專案原始碼

伺服器訊息推送

客戶端定時向伺服器傳送ajax請求,伺服器接到請求後馬上返回響應資訊並關閉連線 優點 後端程式編寫比較容易 缺點 求中有大半是無用,浪費頻寬和伺服器資源 客戶端向伺服器傳送ajax請求,伺服器接到請求後hold住連線,直到有新訊息才返回響應資訊並關閉連線,客戶端處理完響應資訊後再向伺服器傳送新的請求...

關於伺服器推送

關於伺服器推送 前一階段一直在做伺服器推送的技術調研,公司本來希望能夠使用web server做乙個訊息伺服器,使用http協議實現伺服器到客戶端的實時訊息推送。做了一些技術調研成果暫記如下 1,使用場景 可行開發的客戶端軟體,與伺服器使用http協議互動資訊。使用者開機後,與伺服器建立http連線...

伺服器主動推送

1.客戶端輪詢 ajax定時拉取 2.服務端主動推送 websocket 全雙工的,本質是乙個額外的tcp連線,建立和關閉時握手使用的http協議,其他資料傳輸不使用 http協議更加複雜一些,適用於需要進行複雜雙向資料通訊的場景 3.服務端主動推送 sse server send event ht...