微信小程序實時通信(websocket)問題

這幾天值班忙的不要不要,人工智能這塊看的都是零零散散,今天就來寫寫小程序的實時通信吧。
小程序端:
//這個是鏈接php

lianjie:function(){
 var socketOpen = false
//註冊信息
var data = { appid: "77494ad321405fb340e2d1a664850954", sid: "123" }
var socketMsgQueue = JSON.stringify(data)
console.log(socketMsgQueue)
//創建鏈接
wx.connectSocket({
  url: "wss://websck.eloeg.wang:20001",
})
//
wx.onSocketOpen(function (res) {
  console.log('WebSocket鏈接已打開!')
  socketOpen = true
  console.log('數據發送中' + socketMsgQueue)
  sendSocketMessage(socketMsgQueue)
})
function sendSocketMessage(msg) {
  if (socketOpen) {
    wx.sendSocketMessage({
      data: msg
    })
  } else {
    socketMsgQueue.push(msg)
  }
}
wx.onSocketError(function (res) {
  console.log('WebSocket鏈接打開失敗,請檢查!')
})
wx.onSocketMessage(function (res) {
  console.log('收到服務器內容:' + JSON.stringify(res))
})

},
//模擬發送數據,由於在創建鏈接時給本身註冊的用戶sid爲:123,發送數據也發送的是給sid爲123的用戶即本身,數據爲ok12html

fasong:function(){
wx.request({
  url: 'https://wss.md.eloeg.wang/erweima/fasong.php',
  method: 'GET',
  header: { 'content-type': 'application/json' },
  data: {
    sid:'123',
    data:"ok12"
  },
  success: function (res) {
    console.log(res)
  }
})

}
效果如圖:
圖片描述
後端的php代碼:web

<?php 
 $appid = '77494ad321405fb340e2d1a664850954'; //填寫socket端的appid  
 $appkey = '****************************'; //填寫socket端的sercret 
 $apiUrl = '*******************';//發送接口
 $sid=$_GET["sid"];
 $data = $_GET["data"]; //要發送的消息
 $signature = md5($appid.$sid.$data.$appkey);
 $url = $apiUrl.'?appid='.$appid.'&sid='.$sid.'&data='.$data.'&signature='.$signature;
 $html=file_get_contents($url);
 echo $html;
?>
朋友幫助弄了個workerman的接口,直接進行調用了。因此看起來很簡單,這個sid是要給用戶進行標記用,要給哪一個用戶發消息,就在發送時將其sid傳送至後臺。
相關文章
相關標籤/搜索