要求用.net寫一個服務,然后通過webscoket實現客戶端與服務端之間的通信。
第一次知道.net還可以用來寫服務,然后問題來了,服務是什么- -。。下面圖里的就是服務,可以停止暫停和啟動。
我要實現websocket需要什么:
1.首先得確保你的windows安裝了webScoket功能,如何安裝參考https://blog.csdn.net/yelin042/article/details/81082688
2.需要生成WindowsService並且這個服務要開啟(我一開始以為1弄好了就能通信了,結果發現還要開啟服務,不然1寫的服務就沒有意義了。)
3.服務開啟需要指定ip號+端口號。。這個得正確不然也無法連接成功,沒連上的話一般會返回404,400代碼(先得建立連接,然后打開websocket后才能進行通信,通信主要是send方法,只要不close方法斷開通信,就會一直進行通信)
3.1 開啟服務:寫了一個bat 調用服務然后用生成后的debug文件家里的exe來開啟服務的
websocket的方法主要是send發送信息,然后onMessage事件來接受信息,close和open來連接和關閉,其他更多方法參考阮一峰的http://www.ruanyifeng.com/blog/2017/05/websocket.html
還有一個注意的是如果改動了服務里的代碼如業務邏輯等,要使新的服務生效必須得先停止服務,再debug里重新生成服務,再啟動服務,不然新服務不會生效。
websocket相比ajax請求更高效,不用像ajax一樣每次客戶端需要數據都得請求后端方法(比如說前端要拿10次數據,那就得重復10次請求,每次請求都有大量的包頭啥的,效率就不高,而websocket只要請求一次,連上后客戶端和服務就能高效通信),后者是雙向的,前者是單向的,只要一開始建立連接后就可以互相通信,效率比較高,兩者區別參考http://www.cnblogs.com/zhongzihao/p/7859785.html。
主要用於與c/s的通信,本文用到websocket是給盤點機用的,服務里調用了讀寫器的接口,而讀寫器要求讀寫要迅速並且實時通信,websocket正好滿足了這個需求,避免占用太多資源。