(已移除參考產品連接)程序員
在這個系列的文章裏,我將嘗試一步一步開發一套功能完備的在線客服系統,並將其開源在 Git 上,歡迎關注。web
目前進度:開發框架初步搭建,技術驗證DEMO,Git 地址隨後附上,敬請關注。數據庫
鑑於水平限制,不免有所疏漏,歡迎批評指正。編程
文章將分爲幾個部分瀏覽器
1、需求分析及技術方案初步選型服務器
2、技術方案選型,驗證網絡
3、底層框架設計,開發架構
4、服務器設計開發框架
5、客戶端設計開發異步
6、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窗體對數據庫處理提供全面支持。能夠訪問數據庫中的數據,並在窗體上顯示和操做數據。
我將在下一篇中,對以上技術方案進行更進一步的詳細論述與驗證,敬請關注。
若是這些技術對您有用,還請您 推薦 一下本文章,謝謝!您的支持就是個人動力。