Browser IO Client
IOSignal은 웹브라우저용 클라이언트 라이브러리를 제공합니다. 라이브러리 위치와 로딩 방법 및 체험용 브로커서버 주소를 안내드립니다.
Library 위치
직접 운영중인 서버에서 라이브러리를 로딩하실 경우 npm i iosignal
으로 설치 후 dist/
폴더에 있는 배포파일을 이용할수 있습니다.
또는 공개된 CDN 주소를 사용하여 라이브러리를 로딩할 수 도 있습니다.
라이브러리 유형
IOSignal은 ES모듈을 기본 지원합니다.
주의. 배포 버전에 따라 파일명이나 유형이 다를 수 있습니다. v2.2.0의 경우 아래와 같습니다.
- ES Module: io.js (export default)
- UMD(IIFE): io.min.js ( global var name
IO
)
Browser client : ESM 방식
ESM 사용시, export default 가 사용되므로 원하시는 이름으로 import 하시면됩니다. 본 문서에서는 IIFE 방식과 호환을 위해 주로 IO
라는 이름 을 사용합니다.
- local file: "./dist/io.js"
- CDN: https://cdn.jsdelivr.net/npm/iosignal@2.2.0/dist/io.js
<html>
<script type="module">
import IO from "../dist/io.js"
const io = new IO('wss://io.iosignal.net/ws')
io.listen('channel#topic', (...args)={
console.log( args )
})
io.on('ready',()=>{
console.log('ready cid:', io.cid )
})
</script>
</html>
Browser Client : UMD(IIFE)
예전부터 사용해오던 자바스크립트 라이브러리 로딩방식을 사용할 경우(IIFE)엔 script 태그 위치에 주의하셔야합니다. 즉, script 보다 위에 위치해야합니다. 라이브러리가 로딩되면 전역 변수명 IO
으로 로딩됩니다.
- local file: "./dist/io.min.js"
- CDN: https://cdn.jsdelivr.net/npm/iosignal@2.2.0/dist/io.min.js
<html>
<script src="../dist/io.min.js"></script>
<script>
const io = new IO('wss://io.iosignal.net/ws')
io.listen('channel#topic', (...args)={
console.log( args )
})
io.on('ready',()=>{
console.log('ready cid:', io.cid )
})
</script>
</html>
Browser IO 에 추가로 내장된 모듈들
브라우저 IO 클라이언트에는 웹브라우저에 없는 외부 유틸리티 모듈을 사용합니다. 해당 모듈들은 IO.Name
형식으로 접근하여 사용 가능합니다.
- Buffer
- EventEmitter3
- MBP
- Boho
예를 들로 IO.Buffer 로 접근가능합니다.
let buf = IO.Buffer.from('hello')
let hex = buf.toString('hex')
let base64 = buf.toString('base64')
console.log(hex, base64)
IOSignal Broker 서버
접속된 클라이언트들 간의 메시지를 중계해주는 서버를 보통 브로커(broker)라고 부릅니다. (예: MQTT Broker ) IOSignal 은 Node.js 브로커 소스(JS)와 CLI 프로그램도 함께 제공되므로 직접 자신만의 서버를 운영하실 수 있습니다.
단, 자체 서버가 없거나 운영이 어려우신 경우 아래의 IOSignal 공개 브로커(서버)를 사용가능합니다.
wss://io.iosignal.net/ws
- 웹브라우저와 TLS 로 보안통신이 적용되는 서버이며, 주소는 wss:// 으로 시작됩니다.
- 주의. 공개서버는 시그널 용량과 시그널당 구독자 개수 제한이있습니다.
- 공개서버 상태는 수시로 변경될 수 있습니다.