2016-12-25 1 views
0

나는 오랫동안 채팅을하고 있었지만 그걸 만드는 데는 성공이 없었다.자바 스크립트로만 채팅 하시겠습니까?

많은 방법을 시도했지만 내 데이터베이스에 msg를 삽입 한 다음 자바 스크립트를 사용하여 초마다 새로 고침하고 데이터베이스에서 msg를 가져 오지만 그 내용은 잘 작동합니다.

저는 자바 스크립트로 대화를 나누는 방법이 궁금합니다. 그래서 모든 사용자가 볼 수있는 div에 추가됩니다.

일부 사이트에서는이 작업을 수행했지만 직접 처리하지 못했습니다.

+3

에서 온 (클라이언트 쪽 js를 의미) : 아니요 물론 서버가 Node.js를 실행하는 경우에는 여전히 js가되지만 서버에는 있습니다. – Jeff

답변

3

예 - 웹 소켓을 활용하는 채팅 클라이언트를 만들 수 있습니다.

유일한 요구 사항은 도착한 다른 클라이언트에 요청을 전달하기 위해 서버를 실행하는 것입니다.

서버는 다양한 언어로 작성할 수 있습니다. 가장 인기있는 것은 C/C++ (Qt), node.js, Python 및 go입니다. 그래서 "채팅 -

뿐만 아니라 능력으로 이것을 제공 할 수있는 더 많은 언어가 있습니다 ---

은이가는 요리 관련 서버가있을 것입니다 http://www.tutorials.kode-blog.com/websocket-chat-client

var output; 
 

 
var websocket; 
 

 
function WebSocketSupport() { 
 
    if (browserSupportsWebSockets() === false) { 
 
    document.getElementById("ws_support").innerHTML = "<h2>Sorry! Your web browser does not supports web sockets</h2>"; 
 

 
    var element = document.getElementById("wrapper"); 
 
    element.parentNode.removeChild(element); 
 

 
    return; 
 
    } 
 

 
    output = document.getElementById("chatbox"); 
 

 
    websocket = new WebSocket('ws:localhost:999'); 
 

 
    websocket.onopen = function(e) { 
 
    writeToScreen("You have have successfully connected to the server"); 
 
    }; 
 

 

 
    websocket.onmessage = function(e) { 
 
    onMessage(e) 
 
    }; 
 

 
    websocket.onerror = function(e) { 
 
    onError(e) 
 
    }; 
 
} 
 

 
function onMessage(e) { 
 
    writeToScreen('<span style="color: blue;"> ' + e.data + '</span>'); 
 
} 
 

 
function onError(e) { 
 
    writeToScreen('<span style="color: red;">ERROR:</span> ' + e.data); 
 
} 
 

 
function doSend(message) { 
 
    var validationMsg = userInputSupplied(); 
 
    if (validationMsg !== '') { 
 
    alert(validationMsg); 
 
    return; 
 
    } 
 
    var chatname = document.getElementById('chatname').value; 
 

 
    document.getElementById('msg').value = ""; 
 

 
    document.getElementById('msg').focus(); 
 

 
    var msg = '@<b>' + chatname + '</b>: ' + message; 
 

 
    websocket.send(msg); 
 

 
    writeToScreen(msg); 
 
} 
 

 
function writeToScreen(message) { 
 
    var pre = document.createElement("p"); 
 
    pre.style.wordWrap = "break-word"; 
 
    pre.innerHTML = message; 
 
    output.appendChild(pre); 
 
} 
 

 
function userInputSupplied() { 
 
    var chatname = document.getElementById('chatname').value; 
 
    var msg = document.getElementById('msg').value; 
 
    if (chatname === '') { 
 
    return 'Please enter your username'; 
 
    } else if (msg === '') { 
 
    return 'Please the message to send'; 
 
    } else { 
 
    return ''; 
 
    } 
 
} 
 

 
function browserSupportsWebSockets() { 
 
    if ("WebSocket" in window) { 
 
    return true; 
 
    } else { 
 
    return false; 
 
    } 
 
}
body { 
 
    font: 12px arial; 
 
    color: #222; 
 
    text-align: center; 
 
    padding: 35px; 
 
} 
 
#controls, 
 
p, 
 
span { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
input { 
 
    font: 12px arial; 
 
} 
 
a { 
 
    color: #0000FF; 
 
    text-decoration: none; 
 
} 
 
a:hover { 
 
    text-decoration: underline; 
 
} 
 
#wrapper, 
 
#loginform { 
 
    margin: 0 auto; 
 
    padding-bottom: 25px; 
 
    background: #66CCFF; 
 
    width: 504px; 
 
    border: 1px solid #ACD8F0; 
 
} 
 
#chatbox { 
 
    text-align: left; 
 
    margin: 0 auto; 
 
    margin-bottom: 25px; 
 
    padding: 10px; 
 
    background: #fff; 
 
    height: 270px; 
 
    width: 430px; 
 
    border: 1px solid #ACD8F0; 
 
    overflow: auto; 
 
} 
 
#chatname { 
 
    width: 395px; 
 
    border: 1px solid #ACD8F0; 
 
    margin-left: 25px; 
 
    float: left; 
 
} 
 
#msg { 
 
    width: 395px; 
 
    border: 1px solid #ACD8F0; 
 
} 
 
#submit { 
 
    width: 60px; 
 
}
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title>WebSocket PHP Open Group Chat App</title> 
 
    <link type="text/css" rel="stylesheet" href="style.css" /> 
 
    <script src="websocket_client.js"></script> 
 
</head> 
 

 
<body onload="javascript:WebSocketSupport()"> 
 
    <div id="ws_support"></div> 
 

 
    <div id="wrapper"> 
 
    <div id="menu"> 
 
     <h3 class="welcome">Welcome to WebSocket PHP Open Group Chat App v1</h3> 
 
    </div> 
 

 
    <div id="chatbox"></div> 
 

 
    <div id="controls"> 
 
     <label for="name"><b>Name</b> 
 
     </label> 
 
     <input name="chatname" type="text" id="chatname" size="67" placeholder="Type your name here" /> 
 
     <input name="msg" type="text" id="msg" size="63" placeholder="Type your message here" /> 
 
     <input name="sendmsg" type="submit" id="sendmsg" value="Send" onclick="doSend(document.getElementById('msg').value)" /> 
 
    </div> 
 
    </div> 
 
</body> 
 

 
</html>