如何快速搞定websocket
5 個步驟快速掌握websocket消息發送和接收
1. 獲取您的 appkey
先註冊一個帳號,登錄後,創建一個應用,就能得到您的 appkey。
詳情見 獲取開發者帳號和 appkey
2. 客戶端集成 irealtime.js
直接在頁面中引用
<script
type="text/javascript"
src="//irealtime.cn/irealtime-1.0.1.js"
></script>
npm 安裝
npm install --save irealtime
import IRealTime from 'irealtime';
下載到本地
3. 初始化 irealtime
使用之前獲取的 appkey 初始化 irealtime 對象,如果您的客戶端需要發送消息,請使用 common key。如果您的客戶端只需要接收消息,不需要發送消息,可以使用 subscriber key。
提示:
一個頁面或一個單頁面應用,一個小程式或者一個 APP, 只需要初始化一個 irealtime 對象
<script
type="text/javascript"
src="//irealtime.cn/irealtime-1.0.1.js"
></script>
<script type="text/javascript">
var realTime = new IRealTime({
host: 'hk.irealtime.cn',
appkey: '' // common key or subscribe key,
onConnected: function() {
console.log('連接成功...')
},
onDisconnected: function() {
console.log('連接斷開...')
},
onConnectFailed: function(error) {
console.log('連接失敗...', error)
},
})
</script>
4. 訂閱消息(接收)
在發送消息之前,您需要先完成訂閱操作, 來準備接收消息。
什麼是 channels?
根據您的業務需求來設定,channels是一個數組參數,只能包含數字大小寫字母並且不能超過256位,通道需要和消息的發送端保持一致,就可以收到消息。
realTime.subscribe({
channels: ['myChannel01', 'myChannel02'], //可配置多個channel
onMessage: function(data) { // 這個回調函數是用來接收消息的
console.log(data)
// data的數據結構如下
/*{
channel: "myChannel01" // 哪個通道的消息
message: "hello irealtime" // 消息內容
time: 1612403977920 // 發送的時間毫秒數
userId: "" // 帶userId的連接,如果沒有就是空字元串
}*/
},
onSuccess: function(res) {
console.log('訂閱成功...', res)
},
onFailed: function(error) {
console.log('訂閱失敗...', error)
},
})
5. 發送消息
發送時,您的 channel 必須和上一步訂閱的 channel 一致,才可以成功的接收消息。不論是服務端還是客戶端,您都可以使用 irealtime 提供的相應程式碼來完成發送操作。同時也可以使用 curl 直接在控制台調用 irealtime API 來測試 irealtime 的 publish 介面。
realTime.publish({
channel: 'myChannel01',
message: 'hello irealtime',
onSuccess: function(res) {
console.log('success:', res)
},
onFailed: function(error) {
console.log('failed:', error)
},
})
相信通過上邊幾個步驟,您已經成功的完成 irealtime 消息的發送和接收。更多詳情,可以參考 irealtime 官方文檔
遇到技術問題也可以與 irealtime 技術支援取得聯繫。