在如今Time cost和Labor cost進入項目並佔據重要位置的開發理念裏,當一款項目的目標、理念以及開發的要求很是明確時,怎樣減小時間、人力成本以及下降開發風險以及成爲一個項目在開發初期須要肯定的重要因素。javascript
大道至簡 知易行難,做爲一名開發人員站在開發的角度上來說,怎樣去攻克一個技術難題或者須要學習新的語言、技術去應用於新的項目,已經不會是最大的問題,而時間成本以及人力成本會是一個團隊以及公司去考慮的側重點。怎樣去減小這些開發成本最終達到一樣的指望效果,今天我給你們介紹一款產品:GoEasy, 簡單而強大的三方WebSocket。html
我爲何會用到GoEasy,最近公司推p2p新項目,在訂單提醒這一塊由於新項目配備開發人員較少,就算加班也不能在estimated time內完成。通過會議決定使用三方的產品來作這一塊。篩選中最後決定選擇看起來最簡單的GoEasy。java
只須要9分鐘,從註冊到推送實現瀏覽器
1 登陸 www.goeasy.io安全
2 註冊帳號並登陸服務器
3 登陸進入後臺app
個人應用→建立應用→選擇地區→獲取APP keyspost
這裏選擇地區有3個選項能夠選擇,華東(杭州)、美國東部(弗吉尼亞)、新加坡,根據產品使用用戶所在地來選擇效果最佳。學習
點開APP keys 查看url
咱們會得到2個對應的key,一個只能用來訂閱channel來接收消息的Subscribe key和一個既能夠發送消息也能夠訂閱channel來接受消息的Common key。
OK 如今用一個demo來展現,爲何只須要9分鐘。
服務器→客戶端
這裏我用C#來演示,固然 GoEasy適用於任何語言和瀏覽器。
先用C#寫一個Demo
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string postDataStr = "appkey=your app keyXXXXXXXXXXXXXXXXXXXXXXXXXXX"; //appkey HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://rest-hangzhou.goeasy.io/publish"); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr); Stream myRequestStream = request.GetRequestStream(); byte[] data = Encoding.UTF8.GetBytes(postDataStr); myRequestStream.Write(data, 0, data.Length); Console.WriteLine(data); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); Console.WriteLine(retString); Console.ReadLine(); myStreamReader.Close(); myResponseStream.Close(); } } }
用html 寫一個接收端
<!DOCTYPE html> <html> <html> <head> <script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script> <script type="text/javascript"> var goeasy = new GoEasy({ appkey: 'your app keyXXXXXXXXXXXXXX' }); goeasy.subscribe({ channel: 'demo', onMessage: function(message){ //收到消息的第一行,打出日誌,以這個時間做爲檢查的標準 alert('收到:'+message.content); } }); </script> </head> </html>
這裏我用的是Common key,在實戰項目中,接收端使用Common key會存在安全缺陷,建議使用Subscribe key。
還有須要注意的一點就是,CDN host和Rest host 取決於你在建立應用時的選擇。
最後從頁面接受結果能夠看到與C#中demo content推送的內容一致。
同時,咱們也能夠完成客戶端→客戶端的推送
發送端
<!DOCTYPE html> <html> <html> <head> <script type="text/javascript" src="https://cdn-hangzhou.goeasy.io/goeasy.js"></script> <script type="text/javascript"> var goeasy = new GoEasy({ appkey: 'your app keyXXXXXXXXXXXXXX' }); function publishMessage() { var publishMessage = document.getElementById("content").value; goeasy.publish({ channel: 'demo', message: publishMessage, onFailed: function (error) { alert(error.code+" : "+error.content); }, onSuccess: function(){ document.getElementById("content").value=''; } }); } </script> </head> <body> <textarea rows="3" cols="20" id="content"> </textarea> <button id="fasong" onclick="publishMessage()">Send</button>
接收端代碼不變,咱們從發送端發送消息
最後接受成功
一樣的app key在不一樣的代碼以及環境中都可以達到一樣的效果,GoEasy 在讓WebSocket變簡單的過程當中爲開發人員極大的減小了時間和人力成本,若是您對安全性有要求的話,GoEasy 付費項目中獨有的OTP 技術能夠保護您的消息安全無憂。
從註冊到在您的項目中加入APP key,您花到9分鐘了嗎?