마스터욱
Toggle navigation
  • 회원가입 | 정보찾기
ICON NAVIGATION
정보수정 쪽지함 주변맛집 익명채팅
공지사항 채팅 개발문의 방명록
  • MAIN NAVIGATION
  • 메인
  • 마스터욱 공간
    • 마스터욱 소개
    • 개발 리스트
    • 공지사항
    • 방명록
  • 마스터욱 외부자료
    • 네이버
    • 티스토리
    • 깃허브(github)
  • 개인 프로젝트
    • 랜덤 이성 채팅
    • Auto 크롤링
    • Javascript 카카오 채팅
    • 파이썬 뉴스매매
    • C# 키움 주식 자동매매
    • C# 키움 주식 패턴 분석
    • PHP 욱보드
    • 업비트 자동매매 개발
    • 업비트 자동매매 일지
  • 개발 의뢰
    • 개발 문의
    • 개발 견적
    • 개발 피드백
    • FAQ
  • 개발 경험 Tip
    • PHP
    • JSP
    • HTML
    • Javascript
    • Android
    • C#
    • MySQL
    • Linux
    • Python
    • NodeJS
    • React
    • Vue.js
    • Flutter
    • 정규식
    • 기타
  • 커뮤니티
    • 자유게시판
    • 추천사이트
    • 영화
    • 여행
    • 유머
    • Overseas News
  • 맛집&즐길 거리 탐방
    • 맛집 정보
    • 즐길 거리 정보
    • 내 주위 맛집&즐길 거리
  • 공유 사진
    • 음식
    • 여행
    • 캐릭터
    • 배경
    • 기타
    • 이모티콘
    • 일러스트
  • 놀이터
    • 블록뽀시기
    • 트레이딩뷰
    • 로또 시뮬레이션
    • 쳇쳇 익명 채팅
    • 랜덤 이성 채팅
    • AI 채팅
    • 미니 채팅
    • 바이너리 테스트
    • 마번호 생성기
    • 바카라 시뮬레이션
    • 홀짝점수 테스트
    • 로또 분석기
SITE STATISTICS
  • - 명 현재 접속자
  • 1,814 명 오늘 방문자
  • 2,310 명 어제 방문자
  • 5,192 명 최대 방문자
  • 687,387 명 전체 방문자
  • 2,569 개 전체 게시물
  • 496 개 전체 댓글수
Facebook Twitter GooglePlus KakaoStory NaverBand
  1. 홈
  2. NodeJS
목록으로

4시간동안 삽질한 개행(\n) 처리 문제

마스터욱 0 123 0 0 2020-03-31 13:51:48

////////////////////////////// http호출

var http = require("http");

var options = {

hostname: '',

path : '/data/chart/chart_all.txt',

method:'GET'

/*

path: '/post',

method: 'POST',

headers: {

'Content-Type': 'text/html',

}

*/

};

 

////////////////////////////// 소켓호출

var io = require('socket.io').listen(8005);

 

 

//console.log('socket server run!');

 

io.sockets.on('connection', function(socket){

//메세지 수신시

/*

socket.on('send', function(res){

//socket.emit('recv', data); //메세지를 발송한 본인에게만

//io.emit('recv', res); //전체 커넥션 유저들에게

});

 

//브라우저를 떠날때 실행됨

socket.on('disconnect', () => {

});

*/

});

 

setInterval(function(){

var currentDate = new Date();

var secodes = currentDate.getSeconds();

if(secodes % 1 == 0) //1초마다 푸쉬

{

//console.log('secodes => ' + secodes);

var req = http.request(options, function(res) {

//console.log('Status: ' + res.statusCode); //200 => success

//console.log('Headers: ' + JSON.stringify(res.headers));

res.setEncoding('utf-8');

 

var all_string = "";

res.on('data', function (body) {

//console.log('success');

 

//body = body.replace(/\r/g, "");

//body = body.replace(/\n/g, "");

body = body.replace(/\r/gi, '');

body = body.replace(/\n/gi, '');

body = body.replace(/\t/gi, '');

body = body.replace(/\f/gi, '');

//body = escape(body);

 

/*

console.log("=============start===============");

console.log(body);

console.log("=============end===============");

*/

all_string += body;

 

//io.emit('recv', body); //전체 커넥션 유저들에게

});

 

res.on('end', function(){

//console.log("=============start===============");

//console.log(all_string);

//console.log("=============end===============");

io.emit('recv', all_string); //전체 커넥션 유저들에게

});

 

 

//console.log('http end');

});

 

req.on('error', function(e) {

//console.log('problem with request: ' + e.message);

});

 

//console.log('start2');

req.write('{}');

req.end();

}

}, 1000);

 

 

function escape(str) {

  return str

    .replace(/[\\]/g, '\\\\')

//    .replace(/[\"]/g, '\\\"')

    .replace(/[\/]/g, '\\/')

    .replace(/[\b]/g, '\\b')

    .replace(/[\f]/g, '\\f')

    .replace(/[\n]/g, '\\n')

    .replace(/[\r]/g, '\\r')

    .replace(/[\t]/g, '\\t');

};

 

================================================================================================

사건의 발단은 JSON 데이터를 수신받는 클라이언트 쪽에서 JSON 데이터를 온건하게 받지 못하는 부분부터 시작되었다.

console 로 찍어보니 중간에 JSON 데이터가 뚝 끊어져서 들어오는 것이었다.

그래서 서버쪽에서 전달을 잘못하고 있겠거니와, 분석을 시작하였다.

일단 서버쪽에서 cossole 을 찍어보니, 문자열 중간에 개행(\n) 이 확인되었다.

개행이 왜 발생한건지는 모르겠으나, 개행을 공백으로 치환해주었다. 하지만 문제는 해결되지 않았다.

개행안에 눈으로 확인 불가능한 이상한 문자열이 있나??? 싶어서 별의별 치환을 해보았지만 해결이 되지 않았다.

심지어는 인코딩해서 클라이언트 쪽으로 전송해보았으나 안되었다.

그러다가 디버깅을 계속 시도한 결과, 해당 JSON 데이터 문자열은 끊어서 생성이 된다는 것을 알아내었다.

 

그래서 all_string 변수를 만들어서 하나로 엮어서 한꺼번에 클라이언트들에게 전송하니 성공적으로 전송이 됨을 확인하였다.

nodejs 의 http 라이브러리는 data 수신시에 특정 byte 만큼 끊어서 전송받는다~

0
0

목록

Facebook Twitter GooglePlus KakaoStory NaverBand
0 Comments

비밀번호 확인

확인
댓글은 자신을 나타내는 '얼굴'입니다. *^^*
등록
자동등록방지 숫자를 순서대로 입력하세요.

댓글수정


글쓰기
검색
번호 제목 이름 날짜 조회
  • 21
    우분투 DB&Home 폴더 자동백업 프로그램
    마스터욱
    조회수 184   25-07-29 05:47
    마스터욱
    25-07-29 05:47
    184
  • 20
    pm2 로그파일 관리
    마스터욱
    조회수 168   24-10-27 04:38
    마스터욱
    24-10-27 04:38
    168
  • 19
    CSR(client side rendering) 사이트 크롤링 하기
    마스터욱
    조회수 131   24-06-10 16:59
    마스터욱
    24-06-10 16:59
    131
  • 18
    변수값이 변경되었을 경우, 특정 함수 실행 시키기(예제)
    마스터욱
    조회수 155   23-06-30 17:25
    마스터욱
    23-06-30 17:25
    155
  • 17
    socket.io 로 구현한 간단한 채팅 서버 소스코드
    마스터욱
    조회수 133   22-12-04 23:51
    마스터욱
    22-12-04 23:51
    133
  • 16
    PM2를 활용한 Node.js 무중단 서비스하기
    마스터욱
    조회수 134   22-08-10 00:45
    마스터욱
    22-08-10 00:45
    134
  • 15
    nodejs - js파일 include(import)
    마스터욱
    조회수 167   21-09-29 04:25
    마스터욱
    21-09-29 04:25
    167
  • 14
    (에러)Allocation failed - JavaScript heap out of memory
    마스터욱
    조회수 189   21-08-01 20:37
    마스터욱
    21-08-01 20:37
    189
  • 13
    node js 에러가 발생할 경우
    마스터욱
    조회수 149   20-08-28 10:14
    마스터욱
    20-08-28 10:14
    149
  • 12
    리눅스 서버에서 실행중인 node js 프로세스 확인 및 끄기
    마스터욱
    조회수 181   20-08-05 12:38
    마스터욱
    20-08-05 12:38
    181
  • 11
    4시간동안 삽질한 개행(\n) 처리 문제
    마스터욱
    조회수 124   20-03-31 13:51
    마스터욱
    20-03-31 13:51
    124
  • 10
    카페24 node.js 서버로 채팅서버 이전작업
    마스터욱
    조회수 299   20-03-10 12:09
    마스터욱
    20-03-10 12:09
    299
  • 9
    중간점검 완성된 소스
    마스터욱
    조회수 148   20-03-02 03:21
    마스터욱
    20-03-02 03:21
    148
  • 8
    date-utils 설치
    마스터욱
    조회수 162   20-03-02 03:01
    마스터욱
    20-03-02 03:01
    162
  • 7
    crypto-js 설치
    마스터욱
    조회수 142   20-03-02 00:04
    마스터욱
    20-03-02 00:04
    142
  • 6
    Node.js & MySQL 연동
    마스터욱
    조회수 156   20-03-01 02:38
    마스터욱
    20-03-01 02:38
    156
  • 5
    socket.js 코드작성
    마스터욱
    조회수 153   20-03-01 01:02
    마스터욱
    20-03-01 01:02
    153
  • 4
    socket.io 설치
    마스터욱
    조회수 173   20-03-01 00:17
    마스터욱
    20-03-01 00:17
    173
  • 3
    로컬에 express 설치
    마스터욱
    조회수 144   20-03-01 00:03
    마스터욱
    20-03-01 00:03
    144
  • 2
    로컬에 Node.js 설치
    마스터욱
    조회수 122   20-02-29 23:50
    마스터욱
    20-02-29 23:50
    122
글쓰기
검색
  • 1
  • 2
  • 다음

Search

개인정보처리방침
마스터욱. All rights reserved.

Close

0 명 접속중
Time Loading...