現代軟件工程團隊項目貝塔階段_開發日誌_2018.01.15-2018.01.19
阿新 • • 發佈:2018-01-20
測試 不知道 是否 不變 變化 vid 整體 win eid
現代軟件工程團隊項目貝塔階段_開發日誌_2018.01.15-2018.01.19
2018.01.15
已完成:
- 1.版本上線
- 1.1上線操作步驟
- 1.1.1將網站整體文件夾拷貝到keqi1
- 1.1.2修改microDefinition.php的數據庫名和根目錄名
- 1.1.3修改註冊界面發送驗證碼後直接填充功能
- 1.1.4修改del的主id的class為hide
- 1.1.5重新運行根目錄的111.php(消除紅點,也就是消除服務器返回的多余字符)
- 1.2修復上線過程中遇到的bug
- 1.2.1修復註冊頁面郵箱密碼查重異常
- 1.2.2註冊頁面和完善信息頁面檢驗信息正確性模塊化
- 1.2.3
- 1.1上線操作步驟
2018.01.16
已完成
-
1.簡單的了解了sse和webSocket
-
1.1sse
- 1.1.1優點
sse具有小巧簡便的特點,基於http,只需要在原先代碼上作微小的改變,已嘗試在頁面實現。 - 1.1.2缺點
半雙工,瀏覽器向服務器發送數據較困難,前幾天不知道應該如何讓服務器知道我是誰,因為不知道怎麽在sse的情況下向服務器發送數據,現在意識到可以使用session
這是今天碰巧看到的視頻教學,以前驗證登錄狀態都是使用cookies驗證,遲早是要換成session的(擱置一下)http://study.163.com/course/courseLearn.htm?courseId=1003547026#/learn/video?lessonId=1004094119&courseId=1003547026
因為之前一直想不通要怎樣在sse情況下像服務器傳送信息,故了解了一下socket
- 1.1.1優點
-
1.2webSocket
- 1.2.1優點
socket具有全雙工的特點,從瀏覽器像服務器發送數據非常簡單,有很多成熟框架可以調用,直接使用其接口就行。現已經實現了簡單的在命令行中的通信,如果要在做到webSocket需要學習workerman或swoole,有很多全面的教程 - 1.2.2缺點
socket需要重新選擇端口號,涉及到tcp/ip協議,較為復雜,對原先的代碼改動量很大,而且比較難學,關於框架的文檔很少有中文的。。。但是遲早也是要看的。
- 1.2.1優點
-
1.3綜合考量
經過這幾天的考慮和查閱資料發現,websocket能做的sse都能做,對於1秒以內的反饋而言socket更加合適,而1.5秒以上的則幾乎一樣。websocket在企業中應用更廣泛,但難於上手,sse簡單易學,考慮到目前項目人手緊缺,開發周期短,於是決定使用sse。
不過出來混遲早是要還的,websocket該學還是要學,留著以後再說吧,嘗試了一天之後發現並不是很容易…
-
-
2.已實現sse的簡單功能,即從數據庫中實時讀取並傳回前端。
未完成
-
1.html簡單的兩人聊天界面
- 1.1消息呈現界面
- 1.2消息輸入框
-
2.js
- 2.1點擊發送時
- 2.1.1空則給出提示
- 2.1.2非空則將我的信息顯示在頁面上,並通過Ajex傳遞給php1
- 2.2檢測服務器是否返回信息
- 2.2.1返回信息則顯示在頁面上
- 2.1點擊發送時
-
3.php1負責把我發出的信息寫到我的信息表和他的信息表
-
4.php2負責sse部分
- 4.1負責檢查我的表裏面有無新數據
- 4.1.1檢測到的數據與以前的數據不同則傳送到頁面(這裏考慮要不要專門設置一個屬性,當有新數據時更新這個屬性,這樣不畢每次都檢查整個表,目前還不需要考慮壓力部分)
- 4.1.1檢測到的數據與以前相同則不發送(目前先不考慮這一點,先都發送到前端,以後要改)
- 4.1負責檢查我的表裏面有無新數據
2018.1.17
已完成
- 1.新增chatRoom.html
- 1.1好友列表(默認為曾經發送過消息的人)顯示郵箱,最後一條消息時間和最後一條消息
- 1.2消息列表(在只有一個好友的情況下顯示消息),只能顯示登陸後的消息,存在bug
- 1.3輸入框以及按鈕
- 2.新增chatRoom.js
- 2.1登錄通過friendListRead.php時填充好友列
- 2.2sse通過chatMessageReadSSE.php檢測服務器發送的消息(僅能顯示登陸後的,存在bug)
- 2.3點擊發送按鈕後將本人信息寫到本人頁面,再調用chatMessageWriteSSE.php將信息寫入本人與對方聊天表
- 2.4點擊好友列表對應部分的郵箱時將消息列表的hiddenAccount置為該好友
- 3.新增chatMessageReadSSE.php
- 3.1通過sse與服務器鏈接,接收服務器在我的消息表裏toUstcEmail為我、且未讀的消息
- 4.新增chatMessageWriteSSE.php
- 4.1發送消息時將信息寫入本人與對方聊天表
- 5.新增friendListRead.php
- 5.1登錄時由該文件讀取好友列表
未完成
- 1.界面美化(打算找網上已有的頁面源碼)
- 2.增加好友頭像,點擊好友列表當前好友一整個區域時跳到該好友聊天界面,讀取原有信息和新信息
- 3.新信息在好友列表中有提示,可以用徽章來做
- 4.ie瀏覽器的兼容問題
2018.1.18
已完成
- 1.chatRoom.html
- 1.1前端界面美化,左上角增加我的姓名,聊天界面上部為對方姓名,消息內容不再顯示姓名
- 1.2固定聊天框高度,增加豎向滑動條
- 2.chatRoom.js
- 2.1聊天內容默認為第一個好友的內容
- 2.2檢測是否登錄、沒登錄返回主頁,是否有好友、沒好友返回主頁,是否完善了個人信息、沒有完善則跳轉到完善頁面
- 2.3有新消息時滑動條自動停留在下部
- 2.4增加了填充過往消息記錄功能。默認最大100條。調用previousContentRead.php完成
- 3.friendListRead.php
- 3.1修復了原先沒有正確讀取最後一條消息的bug,但增加了時間復雜度
- 3.2同時到improve_info表中讀取了好友真實姓名,不在頁面顯示郵箱,全顯示姓名
- 4.previousContentRead.php
- 4.1點擊左側好友列表某人時顯示最近100條聊天內容
未完成
- 1.已知的bug
- 1.1多客戶端同時登陸時,消息可能會隨機發送到前端
- 【解決辦法】:設置不能同時在兩地登錄賬號
- 1.2好友列表好友高度隨消息長度不同而不同
- 【解決辦法】:設置固定高度,設置最長顯示字數
- 1.3發送消息根據消息長度不同顯示效果不同
- 【解決辦法】:消息內容限定在固定區域中
- 1.1多客戶端同時登陸時,消息可能會隨機發送到前端
- 2.收到新消息時在好友列表應有提示
- 2.1消息條數提示
- 2.2好友標簽置頂
- 3.收到消息時在主頁提示
- 4.sse的ie瀏覽器兼容問題
2018.1.19
已完成
- 1.解決多客戶端同時登陸問題
- 【解決辦法】:在account_password表中增加ip地址一列,登錄時存儲當前ip地址。在聊天界面的sse時刻檢測當前ip地址是否與數據庫一致,若不一致則提示賬號在其他地點登錄。
- 2.略微美化前端頁面
- 【解決辦法】:對每一個好友標簽做了高度限制
- 3.收到新消息後
- 3.1好友列表對應好友標簽置頂
- 3.2若不是當前好友,則對應好友標簽的徽章數量+1,最高顯示99+,為0時隱藏
- 3.3若是當前好友,則顯示,徽章不變化
- 4.發送消息後
- 4.1發送的消息不能為空,否則給出提示
- 4.2對應好友標簽置頂
- 5.點擊切換好友標簽
- 5.1將該好友徽章內容設為0,並隱藏
- 6.修復了時間顯示錯亂的bug
- 【解決辦法】:後端存的13位時間戳,前端按照10位解析出現了問題
- 7.修復了登錄時不顯示未讀消息徽章,僅將未讀消息直接顯示的bug
- 【解決辦法】:消息發送後為haveSend,下一次刷新時將haveSend全都改為沒發送也沒查看notView
- status:
- notView:沒發送也沒查看
- haveSend:發送了沒查看(亞穩態,本次不用再發送、查看了下次才不用在發送、沒查看下次還要再發送)
- haveRead:已經查看了(穩定不需要再發送)
- 8.IE等瀏覽器成功進行通訊
- 【解決辦法】:引入polyfill的eventsource.min.js,無需對原本代碼進行任何修改
- 9.使用強大的測試工具BrowserStack基本完成個瀏覽器測試
- 各windows、mac、iphone、android均可以支持消息發送與接收的功能
未完成
- 1.在主頁也需要增加sse檢測,檢查是否有新的同意邀請等,順道檢查是否在別處登錄【暫時擱置,等待後期分工】
- 2.前端頁面的繼續美化,例如消息要限制在“消息氣泡”內部,頁面比例、整體布局等【暫時擱置,等待後期分工】
- 3.火狐等部分瀏覽器在輸入賬號密碼等信息時,提示此連接不安全【好像是因為網站沒有備案,需要三個月才行】
- 4.iphon手機端訪問時,消息顯示很雜亂,甚至層疊。
現代軟件工程團隊項目貝塔階段_開發日誌_2018.01.15-2018.01.19