티스토리 뷰
웹소켓 클라이언트가 필요해서 bootstrap+vuejs로 간단하게 만들어봤습니다.
jQuery에서 vuejs로 넘어오면서 익숙하지 않은게 힘들었는데, 조금씩 익숙해지니 개발하는데 훨씬 편리함을 느끼네요.
웹소켓 또한 이벤트핸들러와 메소드로 간단히 만들 수 있습니다.
핵심 부분은 아래가 전부입니다.
...
//소켓 연결
this.socket = new WebSocket(this.address)
...
this.socket.onopen = 소켓 연결 이벤트 헨들러
...
this.socket.onerror = 소켓 에러 이벤트 헨들러
...
this.socket.onmessage = 데이터 수신 이벤트 헨들러
...
this.socket.onclose = 소켓 해제 이벤트 헨들러
...
// 소켓 데이터 전송
this.socket.send("메시지")
...
// 소켓 종료
this.socket.close()
아래는 자바 스크립트 전체 소스코드 입니다.
methods: {
connect () {
if (this.socket === undefined || this.socket.readyState === 3) {
this.socket = new WebSocket(this.address)
this.socket.onopen = () => {
this.logs.push({ type: 'INFO', msg: 'CONNECTED' })
this.disabled = false
}
this.socket.onerror = () => {
this.logs.push({ type: 'ERROR', msg: 'ERROR:' })
}
this.socket.onmessage = ({ data }) => {
this.logs.push({ type: 'RECV', msg: 'RECV:' + data })
}
this.socket.onclose = (msg) => {
this.logs.push({ type: 'ERROR', msg: 'Closed (Code: ' + msg.code + ', Message: ' + msg.reason + ')' })
}
}
},
sendMessage () {
if (this.selected === 'plain') {
this.logs.push({ type: 'SENT', msg: 'SENT:' + this.message })
this.socket.send(this.message)
} else if (this.selected === 'json') {
this.logs.push({ type: 'SENT', msg: 'SENT:' + JSON.stringify(this.json) })
this.socket.send(JSON.stringify(this.json))
}
},
disconnect () {
if (this.socket.readyState === 1) {
this.socket.close()
this.logs.push({ type: 'INFO', msg: 'DISCONNECTED' })
this.disabled = true
}
}
}
Vue를 포함한 모든 소스 코드는 깃허브에 있습니다.
깃허브 주소: github.com/lehdqlsl/vue-websocket-client
실제 서버에 올려서 구동시킨 데모 화면입니다. 아래 URL에 누르면 해당 웹페이지로 접속 가능합니다.
접속주소: vue-websocket.ga/
그리고 Location 부분에 아래 에코서버에 연결하여 간단하게 테스트해 볼 수 있습니다.
반응형
'Web > Vue.js' 카테고리의 다른 글
Vue.js 뷰 템플릿 정리 (5) (0) | 2020.05.07 |
---|---|
Vue.js 뷰 라우터 정리 (4) (0) | 2020.04.29 |
Vue.js 컴포넌트 (3) (0) | 2020.04.23 |
Vue.js 뷰인스턴스 (2) (0) | 2020.04.21 |
Vue.js란 무엇인가? (1) (1) | 2020.04.20 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C++
- 후지필름
- ssd성능
- 링크드리스트 클래스
- 리스트 소스 코드
- 후지필름 일렉트로닉
- X100v
- 후지필름X100V
- 구글 드라이브 개발
- 삼성ssd
- 샌디스크ssd
- SSD
- 구글 드라이브
- ssd비교
- 리스트 클래스
- 링크드리스트
- Google Drive SDK
- ssd추천
- 리스트
- SDK
- 구글 드라이브 API
- C
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함