基础
server.js
var WebSocketServer = require('websocket').server;
var http = require('http');
var server = http.createServer(function(request, response) {});
server.listen(3000, function() {
console.log('服务器启动成功');
});
wsServer = new WebSocketServer({
httpServer: server
});
wsServer.on('request', function(request) {
var connection = request.accept(null, request.origin);
setInterval(function(){
connection.sendUTF('我持续发消息')
},1000)
console.log('连接成功');
connection.on('close', function(reasonCode, description) {
console.log('连接已断开');
});
});
test.html
<script>
var ws = new WebSocket('ws://localhost:3000');
ws.onopen = function(res){
console.log('连接成功')
}
ws.onmessage = function(res){
console.log('有新消息')
}
</script>
聊天室
serCenter.js
var WebSocketServer = require('websocket').server;
var http = require('http');
var server = http.createServer();
server.listen(3000,function(){//服务器启动时
console.log('服务器搭建成功')
})
var wsServer = new WebSocketServer({httpServer:server})//用服务器创建socket
var clients = []
wsServer.on('request', function(request) {//连接成功时
var connection = request.accept(null, request.origin);
clients.push(connection)
connection.on('message', function(message) {//接收到消息时
if (message.type === 'utf8') {
clients.forEach(function(item){
item.sendUTF(message.utf8Data)
})
}
else if (message.type === 'binary') {
connection.sendBytes(message.binaryData);
}
});
connection.on('close', function(reasonCode, description) {//连接断开时
console.log(connection.remoteAddress + '连接已断开');
var index = clients.indexOf(connection)
clients.splice(index,1)
});
})
oneClient.html
<body>
<ul id="content"></ul>
<input type="text" id="msg">
<button onclick="send()">发送</button>
<script>
var ws = new WebSocket('ws://localhost:3000')
var inputNode = document.getElementById('msg')
var content = document.getElementById('content')
ws.onmessage = function(msg){
console.log(msg)
content.innerHTML +='<li>'+msg.data+'</li>'
}
function send(){
ws.send(inputNode.value)
}
</script>
</body>
cnpm i websocket