클라이언트 측에서 nem2-sdk의 Listener를 사용할 때 WebSocket을 주입합니다.
소개
nem2-sdk-typescript-javascript 의 Listener를 사용했을 때, 다음과 같은 에러를 만나지 않을까요?
Access to fetch at ' htp://13.114.200.132:3000/ws ' from origin ' http://localhost:3000 ' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, the request's mode to 'no-cors' to fetch the resource with CORS disabled.
자신의 경험에서 클라이언트 측 (브라우저)에서 리스너를 사용하려고하면 나타납니다.
오류적으로 CORS를 설정해야 하는 것처럼 보이지만 그렇지 않습니다.
클라이언트 측에서 Listener를 사용하는 경우 서버 측 (Node.js) 때와 달리 WebSocket 객체를 주입해야합니다.
예를 들면
예를 들어 Nuxt.js에서 다음과 같은 구성 요소를 만들고 사용했다고 가정합니다.
<template>
<div style="margin-top: 2rem;">
<button @click="listenConfirmed" class="button--grey">confirmed</button>
<pre style="text-align: left; font-size: xx-small;">{{ JSON.stringify(confirmed) }}</pre>
</div>
</template>
<script>
import { Address, Listener } from 'nem2-sdk'
export default {
name: 'Account',
data() {
return {
confirmed: []
}
},
methods: {
listenConfirmed() {
const listener = new Listener('http://13.114.200.132:3000');
const address = Address.createFromRawAddress('SCA7ZS-2B7DEE-BGU3TH-SILYHC-RUR32Y-YE55ZB-LYA2');
listener.open().then(() => {
listener.confirmed(address).subscribe((x) => {
this.confirmed.push(x)
})
});
}
}
}
</script>
<style>
</style>
개발자 도구의 콘솔에 다음과 유사한 오류가 표시된다고 생각합니다.
해결 방법
Listener의 첫 번째 인수에는 ws
로 시작하는 URL을, 두 번째 인수에는 WebSocket
객체를 전달합니다.
그래서 다음과 같이 다시 씁니다.
listenConfirmed() {
const endpoint = 'http://13.114.200.132:3000';
const wsEndpoint = endpoint.replace('http', 'ws');
const listener = new Listener(wsEndpoint, WebSocket);
const address = Address.createFromRawAddress('SCA7ZS-2B7DEE-BGU3TH-SILYHC-RUR32Y-YE55ZB-LYA2');
listener.open().then(() => {
listener.confirmed(address).subscribe((x) => {
this.confirmed.push(x)
})
});
}
무언가 트랜잭션을 보내 보면 제대로 얻을 수있었습니다.
Reference
이 문제에 관하여(클라이언트 측에서 nem2-sdk의 Listener를 사용할 때 WebSocket을 주입합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/planethouki/items/328ca95362c2ccbc972c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
예를 들어 Nuxt.js에서 다음과 같은 구성 요소를 만들고 사용했다고 가정합니다.
<template>
<div style="margin-top: 2rem;">
<button @click="listenConfirmed" class="button--grey">confirmed</button>
<pre style="text-align: left; font-size: xx-small;">{{ JSON.stringify(confirmed) }}</pre>
</div>
</template>
<script>
import { Address, Listener } from 'nem2-sdk'
export default {
name: 'Account',
data() {
return {
confirmed: []
}
},
methods: {
listenConfirmed() {
const listener = new Listener('http://13.114.200.132:3000');
const address = Address.createFromRawAddress('SCA7ZS-2B7DEE-BGU3TH-SILYHC-RUR32Y-YE55ZB-LYA2');
listener.open().then(() => {
listener.confirmed(address).subscribe((x) => {
this.confirmed.push(x)
})
});
}
}
}
</script>
<style>
</style>
개발자 도구의 콘솔에 다음과 유사한 오류가 표시된다고 생각합니다.
해결 방법
Listener의 첫 번째 인수에는 ws
로 시작하는 URL을, 두 번째 인수에는 WebSocket
객체를 전달합니다.
그래서 다음과 같이 다시 씁니다.
listenConfirmed() {
const endpoint = 'http://13.114.200.132:3000';
const wsEndpoint = endpoint.replace('http', 'ws');
const listener = new Listener(wsEndpoint, WebSocket);
const address = Address.createFromRawAddress('SCA7ZS-2B7DEE-BGU3TH-SILYHC-RUR32Y-YE55ZB-LYA2');
listener.open().then(() => {
listener.confirmed(address).subscribe((x) => {
this.confirmed.push(x)
})
});
}
무언가 트랜잭션을 보내 보면 제대로 얻을 수있었습니다.
Reference
이 문제에 관하여(클라이언트 측에서 nem2-sdk의 Listener를 사용할 때 WebSocket을 주입합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/planethouki/items/328ca95362c2ccbc972c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
listenConfirmed() {
const endpoint = 'http://13.114.200.132:3000';
const wsEndpoint = endpoint.replace('http', 'ws');
const listener = new Listener(wsEndpoint, WebSocket);
const address = Address.createFromRawAddress('SCA7ZS-2B7DEE-BGU3TH-SILYHC-RUR32Y-YE55ZB-LYA2');
listener.open().then(() => {
listener.confirmed(address).subscribe((x) => {
this.confirmed.push(x)
})
});
}
Reference
이 문제에 관하여(클라이언트 측에서 nem2-sdk의 Listener를 사용할 때 WebSocket을 주입합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/planethouki/items/328ca95362c2ccbc972c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)