看了之前的文章,想必大家对WebSocket的原理已经有了一个深入的理解,这一篇文章我们来看一下具体该如何去使用它。
这里,我用nodejs-websocket实现一个简单的多人聊天室,从这个小案例中来学会使用WebSocket。
nodejs-websocket用法参见官方api:
https://www.npmjs.com/package/nodejs-websocket
服务器端:
//安装引入nodejs-websocket
var ws = require('nodejs-websocket');
console.log("开始建立连接...")
//创建服务
var server = ws.createServer((conn) => {
conn.on("text", (str) => {
console.log("接收的信息 "+str)
//发送信息
broadcast(str)
})
conn.on("close", (code, reason) => {
console.log("关闭连接")
})
})
function broadcast(str) {
//把消息发送到每一个连接服务的客户端
server.connections.forEach(function(connection) {
connection.sendText(str);
})
}
//监听端口
server.listen(3000)
console.log("WebSocket建立完毕")
客户端:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>聊天室1</title>
<script src="http://static.wanlianjin.com/data/m/wlcs/js/nocar/jquery-1.7.2.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<ul id="messages"></ul>
<input id="m" autocomplete="off" /><button>Send</button>
<script>
if(window.WebSocket){
//连接服务器地址
var ws = new WebSocket('ws://100.39.8.55:3000');
ws.onopen = function(e){
console.log("连接服务器成功");
$('button').click(() => {
if($('#m').val()){
//发送消息
ws.send('小红:'+$('#m').val());
$('#m').val('')
}
})
}
ws.onclose = function(e){
console.log("服务器关闭");
}
ws.onerror = function(){
console.log("连接出错");
}
//接收消息
ws.onmessage = function(e){
$('#messages').append('<li>'+ e.data +'</li>')
}
}
</script>
</body>
</html>