(已移除參考產品鏈接)
在這個系列的文章里,我將嘗試一步一步開發一套功能完備的在線客服系統,並將其開源在 Git 上,歡迎關注。
目前進度:開發框架初步搭建,技術驗證DEMO,Git 地址隨后附上,敬請關注。
鑒於水平限制,難免有所疏漏,歡迎批評指正。
文章將分為幾個部分
一、需求分析及技術方案初步選型
二、技術方案選型,驗證
三、底層框架設計,開發
四、服務器設計開發
五、客戶端設計開發
六、Web端設計開發
在這個系列的文章中,您將了解並學習到以下技術知識:
MSMQ、YUI、WebSocket、Reporting Services、WinForms
如果這些技術對您有用,還請您 推薦 一下本文章,謝謝!
首先我們大概看看什么是在線客服系統:
只需將系統生成的一段JavaScript代碼嵌入網站頁面,即可在網站上顯示代表客服的浮動小圖標,邀請框,以及小聊天窗口。
而客服側可以在客服程序中,查看網站的實時在線訪客、瀏覽軌跡等,訪客點擊網頁上的浮動小圖標,就能直接和網站客服人員進行在線即時交流,目的是提升客戶滿意度和網站的銷售額。
由此分析,在線客服系統大至分為三大塊:1)服務端,2)客服端,3)web網頁端。但是僅僅分為這三大塊是不夠的,下面我們還將對每一塊進行進一步的分析。
在功能上,至少應當包含以下功能:
1)對於web來分析:浮動圖標的設置和顯示,邀請框的設置和顯示 、 以及核心的聊天窗口
聊天界面效果:
2)對於客服端功能分析:在線訪客的查看和主動邀請、 接受訪客發起的咨詢 、 客服之間的會話轉接 、 訪客訪問軌跡,個人信息的獲取及展示 、歷史記錄的保存及查詢 、 實時監控,以及和報表相關的統計分析。
參考現有軟件效果:http://www.zkebao.com 招客寶
可以看出客服界面大至分為幾個部分:
1)左側的訪客區,顯示各種不同狀態的訪客,如訪問中,會話中,邀請中等。
2)中間的會話聊天區。
3)右側的擴展功能。
http://www.zkebao.com 招客寶
由此可見,對於訪客的管理,最為重要的就是對於訪客狀態的管理。這塊內容后面我將一步一步為大家展開。
好了,到此,在線客服系統的主要功能大家應該已經有了直觀的印象,那么,從何着手才能開發一套功能齊備的在線客服系統呢?
首先是大至的體系結構與架構設計:
技術方案的選型:
1)服務器操作系統:
Windows Server 2012
Windows Server 2012 是微軟下一代 Windows 服務器的最新版本,它采用超越虛擬化技術,可通過一台服務器提供多台服務器的功能, 實現相當靈活的工作方式,為每個應用程序創造更大的發揮空間 。它將向企業和托管提供商提供可伸縮、動態、支持多租戶以及通過雲計算得到優化的基礎結構,並能幫助 IT 專業人員更快、更高效地響應業務需求。
2)消息服務:
MSMQ
在線客服系統最重要的是什么,當然是網站訪客與客服人員消息的互通,我不推薦重復造輪子,而是更願意選擇成熟穩定的產品來為我們服務。
Message Queue(微軟消息隊列)是在多個不同的應用之間實現相互通信的一種異步傳輸模式,相互通信的應用可以分布於同一台機器上,也可以分布於相連的網絡空間中的任一位置。它的實現原理是:消息的發送者把自己想要發送的信息放入一個容器中(我們稱之為Message),然后把它保存至一個系統公用空間的消息隊列(Message Queue)中;本地或者是異地的消息接收程序再從該隊列中取出發給它的消息進行處理。
在消息傳遞機制中,有兩個比較重要的概念。一個是消息,一個是隊列。消息是由通信的雙方所需要傳遞的信息,它可以是各式各樣的媒體,如文本、聲音、圖象等等。消息最終的理解方式,為消息傳遞的雙方事先商定,這樣做的好處是,一是相當於對數據進行了簡單的加密,二則采用自己定義的格式可以節省通信的傳遞量。消息可以含有發送和接收者的標識,這樣只有指定的用戶才能看到只傳遞給他的信息和返回是否操作成功的回執。消息也可以含有時間戳,以便於接收方對某些與時間相關的應用進行處理。消息還可以含有到期時間,它表明如果在指定時間內消息還未到達則作廢,這主要應用與時間性關聯較為緊密的應用。
3)Web 開發框架:
YUI,WebSocket
對於在線客服系統,Web頁面的穩定性和速度非常重要,在此我們使用 YUI 和 WebSocket 來構建可與服務端實時交互的 Web 系統。
YUI:YUI庫是一系列使用Javascript和CSS創建的的工具和控件集,用來創建富客戶端Web應用。使用到了DOM scripting,DHTML和AJAX。
WebSocket:是HTML5開始提供的一種在單個 TCP 連接上進行全雙工通訊的協議。WebSocket通信協議於2011年被IETF定為標准RFC 6455,WebSocketAPI被W3C定為標准。在WebSocket API中,瀏覽器和服務器只需要做一個握手的動作,然后,瀏覽器和服務器之間就形成了一條快速通道。兩者之間就直接可以數據互相傳送。
4)報表服務器
Microsoft SQL Server Reporting Services
Reporting Services提供了一套完整的服務、工具和應用程序編程接口 (API),您即使不是程序員也可以使用 Reporting Services。可以使用 Reporting Services 中包含的應用程序和工具來制作、發布和管理報表。此外,還提供了支持報表生存周期的各個階段的工具或應用程序。程序員可以使用 API 將報表功能擴展或集成到自定義解決方案中。
5)客服端開發框架:
Microsoft .NET Framework 4.5 / WinForm
WinForm 提供了豐富的控件,可用於設計窗體,以創建豐富的基於Windows的應用程序。新的數據提供程序管理:數據提供程序管理提供易於連接OLEDB和ODBC數據源的數據控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Oracle等。方便的數據顯示和操作:應用程序開發中最常見的情形之一是在窗體上顯示數據。Windows窗體對數據庫處理提供全面支持。可以訪問數據庫中的數據,並在窗體上顯示和操作數據。
我將在下一篇中,對以上技術方案進行更進一步的詳細論述與驗證,敬請關注。
如果這些技術對您有用,還請您 推薦 一下本文章,謝謝!您的支持就是我的動力。