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

2014-10-07 (화) 23:44:00 6,822

제작중인 사이트에 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라고 떴었는데 이거랑도 연관이 있는것같고, 외국인이 쓴 어느 글에서는

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

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

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

Copy
<?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개

2014-10-08 (수) 12:46:17
처리완.

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