[위 챗 애플 릿]API 네트워크(4)WebSocket
4179 단어 위 챗 애플 릿 개발
1.wx.connectSocket(OBJECT)을 사용 하여 연결 합 니 다.OBJECT 의 매개 변 수 는 다음 과 같 습 니 다↓
매개 변수
유형
필수
설명 하 다.
최저 버 전
url
String
예.
개발 자 서버 인터페이스 주 소 는 ws 프로 토 콜 이 어야 하 며 도 메 인 이름 은 배경 설정 의 합 법 적 인 도 메 인 이름 이 어야 합 니 다.
header
Object
아니.
HTTP 헤더,헤더 에 Refer 를 설정 할 수 없습니다.
method
String
아니.
기본 값 은 GET,유효 값:OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT
protocols
StringArray
아니.
하위 프로 토 콜 배열
1.4.0
success
Function
아니.
인터페이스 호출 성공 적 인 리 셋 함수
fail
Function
아니.
인터페이스 호출 실패 한 리 셋 함수
complete
Function
아니.
인터페이스 호출 이 끝 난 리 셋 함수(호출 성공,실패 모두 실행)
2.웹 소켓 의 감청 사건
(1)wx.onSocketOpen(CALLBACK)을 사용 하면 WebSocket 연결 오픈 이 벤트 를 감청 할 수 있 습 니 다.
(2)wx.onSocketError(CALLBACK)를 사용 하면 WebSocket 오 류 를 감청 할 수 있 습 니 다.
(3)js 파일 에서 connect Socket 을 호출 합 니 다.url 은 존재 하지 않 는,success 의 반전 도,fail 의 반전 도 없습니다.console 는 connect 만 출력 했 습 니 다.
connect: function () {
console.log("connect...")
wx.connectSocket({
url: 'xxx.xxx.xxx.xxx:8080/wxapp/test.php',
success: function (res) {
console.log("success")
},
fail: function (res) {
console.log("fail")
},
complete: function (res) {
console.log(res)
},
})
}
3.WebSocket 연결 을 통 해 데 이 터 를 보 내 고 wx.sendSocketmessage(OBJECT)를 사용 하여 완성 하지만 wx.connect Socket 을 먼저 진행 하고 감청 이 시 작 된 wx.onSocket Open 리 셋 을 한 후에 야 보 낼 수 있 습 니 다.(onSocketOpen 의 리 셋 을 완료 할 수 없 기 때문에 이 API 도 프 리 젠 테 이 션 을 할 수 없습니다.)
(1)wx.sendscketmessage 의 매개 변수 설명 을 첨부 합 니 다.
매개 변수
유형
필수
설명 하 다.
data
String/ArrayBuffer
예.
보 낼 내용
success
Function
아니.
인터페이스 호출 성공 적 인 리 셋 함수
fail
Function
아니.
인터페이스 호출 실패 한 리 셋 함수
complete
Function
아니.
인터페이스 호출 이 끝 난 리 셋 함수(호출 성공,실패 모두 실행)
(2)js 의 예시 코드
var socketOpen = false// socket , false
var socketMsgQueue = []// socket
wx.connectSocket({
url: 'test.php'// , url
})
wx.onSocketOpen(function(res) {
socketOpen = true// open , true
for (var i = 0; i < socketMsgQueue.length; i++){
sendSocketMessage(socketMsgQueue[i])//
}
socketMsgQueue = []//
})
function sendSocketMessage(msg) {
if (socketOpen) {/* open , */
wx.sendSocketMessage({
data:msg
})
} else {
socketMsgQueue.push(msg)
}
}
4.메 시 지 를 보 내 는 것 과 대응 하여 이 부분 은 서버 로부터 받 은 메 시 지 를 기록 하고 wx.onSocketmessage(CALLBACK)를 사용 합 니 다.
CALLBACK 반환 매개 변 수 는 다음 과 같 음↓
매개 변수
유형
설명 하 다.
data
String/ArrayBuffer
서버 반환 메시지
예제 코드
wx.connectSocket({
url: 'test.php'
})
wx.onSocketMessage(function(res) {
console.log(' :' + res.data)
})
5.마지막 으로 socket 이 닫 히 고 wx.closeSocket(OBJECT)을 사용 합 니 다.매개 변수 목록 은 다음 과 같 습 니 다↓
매개 변수
유형
필수
설명 하 다.
최저 버 전
code
Number
아니.
연결 이 꺼 진 이 유 를 나타 내 는 숫자 값이 인자 가 지정 되 지 않 았 다 면 기본 값 은 1000 입 니 다.(정상 연결 이 닫 혔 음 을 표시 합 니 다)
1.4.0
reason
String
아니.
연결 이 닫 힌 이 유 를 표시 하 는 읽 을 수 있 는 문자열이 문자열 은 123 바이트 이상 의 UTF-8 텍스트 여야 합 니 다(문자 가 아 닙 니 다)
1.4.0
success
Function
아니.
인터페이스 호출 성공 적 인 리 셋 함수
fail
Function
아니.
인터페이스 호출 실패 한 리 셋 함수
complete
Function
아니.
인터페이스 호출 이 끝 난 리 셋 함수(호출 성공,실패 모두 실행)
(1)wx.onSocketClose(CALLBACK)를 사용 하여 WebSocket 을 감청 하여 닫 습 니 다.
wx.connectSocket({
url: 'test.php'
})
// ,
// wx.connectSocket wx.onSocketOpen, wx.closeSocket, WebSocket 。
// WebSocket wx.closeSocket 。
wx.onSocketOpen(function() {
wx.closeSocket()
})
wx.onSocketClose(function(res) {
console.log('WebSocket !')
})