node.js socket.io 익스 구버전에서 먹통 되는 문제..

node.js socket.io 익스 구버전에서 먹통 되는 문제..

QA

node.js socket.io 익스 구버전에서 먹통 되는 문제..

답변 1

본문

제작중인 사이트에 node.js를 이용한 채팅방을 만들고 있는데요.

구버전 익스에서 문제가 생겨서 질문을 드립니다.

익스8은 그냥 그러려니 했는데 익스 9에서까지 안되니 답답하네요

 

에러 메시지는 이렇게 나오더라고요

CRIPT438: 개체가 'stringify' 속성이나 메서드를 지원하지 않습니다.
?EIO=3&transport=polling&j=0&t=1412692581087-1&b64=1&sid=nlURD8Vs3W2qKLWAAAAb, 줄 1 문자 1 

 

쫓아가보면

클라이언트쪽에서 인클루드 한 socket.io.js파일에서 아래 내용에서 멈춘것으로 나와요..
    str += json.stringify(obj.data);

 

막 검색하다 보니까 이게 구버전에서는 계속 stackoverflow라고 떴었는데 이거랑도 연관이 있는것같고, 외국인이 쓴 어느 글에서는


   delete Object.prototype.toJSON;
   delete Array.prototype.toJSON;
   delete Hash.prototype.toJSON;
   delete String.prototype.toJSON;

 

이런거 넣으면 된다(?)는 식으로 얘기하던데 잘 모르겠네요....

 

일단 비루한 코드를 공개하자면 아래와 같이 짰습니다.. nodejs 고수님들 도와주세요 ㅜㅜ

 


<?php include_once("../common.php") ?>

<head>
 <link rel="stylesheet" href="/css/common.css">
 <script src="/js/socket.io.js"></script> 
 <script src="/js/jquery-1.8.3.min.js"></script> 
    <script>
        window.onload = function () {
            // 소켓을 생성합니다.
            var socket = io.connect('http://123.45.67.89:52273');
   socket.emit('start','<?php echo $member[mb_id]?>');
            // 소켓 이벤트를 연결합니다.
            socket.on('message', function (data) {
     $("#chat_content").append("<li>"+data+"</li>");
     //스크롤 한칸 내리기
      $('#chat_content').scrollTop($('#chat_content').scrollTop()+parseInt($("li:last-child", "#chat_content").css('height').replace(/[^-\d\.]/g, '')));
            });
            // 문서 객체 이벤트를 연결합니다.
            document.getElementById('nw_chat_enter').onclick = function () {
                // 변수를 선언합니다.
                var text = document.getElementById('nw_chat_input').value;
    
    if(text != ''){
     if('<?php echo $member[mb_nick]?>' =='')
      alert("로그인이 필요합니다.");
     else{
      // 데이터를 전송합니다.
      socket.emit('message', '<b>'+'<?php echo $member[mb_nick]?>'+'</b> '+text);

      //텍스트 입력창을 삭제합니다.
      $('#nw_chat_input').attr('value','');
     }
    }
            };
        };
    </script>
</head>
<style>
</style>
<body>
 <div class="nw_chat">
  <div class="nw_chat_top">
  </div>
  <div class="nw_chat_mid">
  <ul id="chat_content">
  </ul>
  </div>
  <div class="nw_chat_bot">
   <input id="nw_chat_input" class="nw_chat_input" type="text" placeholder="대화를 입력해주세요" onkeydown="if(event.keyCode==13){$('.nw_chat_enter').trigger('click');}"/>
   <div id="nw_chat_enter" class="nw_chat_enter">
  </div>
  </div>
 </div>
</body>
</html>
​
 

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 16
© SIRSOFT
현재 페이지 제일 처음으로