테스트 사이트 - 개발 중인 베타 버전입니다

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

일어나라 11년 전 조회 6,144

제작중인 사이트에 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;</p><p>

 

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

 

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

 

</p><p><?php include_once("../common.php") ?></p><p>
<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('<a href="<a href="http://123.45.67.89:52273" target="_blank" rel="noopener noreferrer">http://123.45.67.89:52273</a>"><a href="http://123.45.67.89:52273" target="_blank" rel="noopener noreferrer">http://123.45.67.89:52273</a></a>');
   socket.emit('start','<?php echo $member[mb_id]?>');</p><p>            // 소켓 이벤트를 연결합니다.
            socket.on('message', function (data) {
     $("#chat_content").append("<li>"+data+"</li>");</p><p>     //스크롤 한칸 내리기
      $('#chat_content').scrollTop($('#chat_content').scrollTop()+parseInt($("li:last-child", "#chat_content").css('height').replace(/[^-\d\.]/g, '')));
            });</p><p>            // 문서 객체 이벤트를 연결합니다.
            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);</p><p>
      //텍스트 입력창을 삭제합니다.
      $('#nw_chat_input').attr('value','');
     }
    }
            };</p><p>        };
    </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>
​</p><p>
 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

T
11년 전
처리완.
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인