1. 程式人生 > >現代軟件工程團隊項目貝塔階段_開發日誌_2018.01.15-2018.01.19

現代軟件工程團隊項目貝塔階段_開發日誌_2018.01.15-2018.01.19

測試 不知道 是否 不變 變化 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

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.2webSocket

      • 1.2.1優點
        socket具有全雙工的特點,從瀏覽器像服務器發送數據非常簡單,有很多成熟框架可以調用,直接使用其接口就行。現已經實現了簡單的在命令行中的通信,如果要在做到webSocket需要學習workerman或swoole,有很多全面的教程
      • 1.2.2缺點
        socket需要重新選擇端口號,涉及到tcp/ip協議,較為復雜,對原先的代碼改動量很大,而且比較難學,關於框架的文檔很少有中文的。。。但是遲早也是要看的。
    • 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返回信息則顯示在頁面上
  • 3.php1負責把我發出的信息寫到我的信息表和他的信息表

  • 4.php2負責sse部分

    • 4.1負責檢查我的表裏面有無新數據
      • 4.1.1檢測到的數據與以前的數據不同則傳送到頁面(這裏考慮要不要專門設置一個屬性,當有新數據時更新這個屬性,這樣不畢每次都檢查整個表,目前還不需要考慮壓力部分)
      • 4.1.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發送消息根據消息長度不同顯示效果不同
      • 【解決辦法】:消息內容限定在固定區域中
  • 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