위챗 애플릿으로의 Parse-SDK-JS 마이그레이션 여행: 웹소켓
request
과localStorage
보다 더 어려웠지만 순조롭게 이식되었다.위챗 애플릿의 웹소켓은 하나의 연결만 허용하기 때문에 복잡한 상황에서 테스트를 진행하지 않았고 버그가 발견되지 않았습니다.
스크립트 위치 지정
파일:
/src/LiveQueryClient.js
함수: _getWebSocketImplementation
코드: if (process.env.PARSE_BUILD === 'node') {
return require('ws');
} else if (process.env.PARSE_BUILD === 'browser') {
return typeof WebSocket === 'function' || typeof WebSocket === 'object' ? WebSocket : null;
} else if (process.env.PARSE_BUILD === 'react-native') {
return WebSocket;
}
원리 분석
서로 다른 실행 환경에서 서로 다른
WebSocket
대상을 되돌려주는 것을 볼 수 있지만 이것은 모두 위챗 애플릿이 지원하는 것이 아니다.그래서 저희가 간단한 WebSocket
대상을 다시 써야 돼요.코드 작성
class WxSocket {
constructor (url) {
wx.connectSocket({
url
});
wx.onSocketOpen((ret) => {
this.onopen && this.onopen(ret);
});
wx.onSocketError(err => {
this.onerror && this.onerror(err);
});
wx.onSocketMessage(msg => {
this.onmessage && this.onmessage(msg);
});
wx.onSocketClose(() => {
this.onclose && this.onclose();
})
}
send (data) {
wx.sendSocketMessage({
data
})
}
close () {
wx.closeSocket();
}
onopen () {}
onerror (error) {}
onclose () {}
onmessage (event) {}
}
그리고 위의
_getWebSocketImplementation
함수에서 WxSocket
대상을 직접 되돌려주면 된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.