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개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인