게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[본삭금]Node js 웹소켓,스트림 관련 질문 있습니다.
게시물ID : programmer_9509짧은주소 복사하기
작성자 : 환타맛콜라
추천 : 0
조회수 : 1026회
댓글수 : 3개
등록시간 : 2015/04/23 09:19:10
옵션
  • 베스트금지
  • 본인삭제금지
server.js 소스
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var http = require('http');
var fs = require('fs');
var WebSocketServer= require('ws').Server;
var WebSocketStream= require('websocket-stream');
 
 
  var wss = new WebSocketServer({server:server})
  var clientId   = 0;
  wss.on('connection'function(ws){
    var Id = ++clientId;
    console.log('#%d 클라이언트 연결. 프로세스 : %d',Id,process.pid);
    var stream = WebSocketStream(ws);
    fs.createReadStream('google.jpg').pipe(stream);
                      :
                 :
                     :
 });    
cs
client 소스
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type='text/javascript'>
$(document).ready(function(event){
  var address= 'ws://192.168.123.227:50000'
  socket = new WebSocket(address);
  socket.binaryType ="arraybuffer";
 
  socket.onopen = function(event) {
  }
 
  socket.onmessage =function(event) {
    var temp = new Uint8Array(event.data);
    cc=btoa(String.fromCharCode.apply(null,temp));
    $('#img').attr('src',"data:image/png;base64,"+cc);
  }
 
  socket.onerror = function(event) {
 
  }
 
  socket.onclose = function(event) {
 
  }
});
cs

서버 소스는 전체 부분중의 일부 입니다.

질문있습니다.

1.웹소켓을 쓰는데. 굳이 스트림을 사용하여야 하는 것인가요? 
1-2? 스트림을 사용하지않고 전체 바이너리 데이터를 'base64'로 인코딩해서 클라이언트(브라우저) 쪽에 넘겨서는 사용을 했지만.. 그러면 node를 사용하는 이유가 없는 거 같아서 스트림을 사용할려고 합니다. 이생각이 잘못된것인지.?

2.현재 65536 byte 이하의 바이너리 이미지 데이터는 제대로 브라우저에 표시를 하는데 이상 넘어가면 그리지를 못하고 엑박? 이 뜹니다.


3.그래서 2번의 문제를 해결하기 위해서 binaryjs 라는 모듈을  서버와 클라이언트(브라우저) 양단에 사용을 하여 해결했지만.. 순수 웹소켓 만 가지고도 구현할 수 있을까요?  

글재주가 없어서,, 머리속 질문을 최대한 정리를 해봤는데.. 읽기 어려우시다면 죄송합니다.
고수님들 잘부탁드립니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호