分布式服务器开发基础之~只用ws模块实现多个逻辑服务器与网关的通信
1)先看效果
2)客户端ws-client
var WebSocket = require("ws");
var client = new WebSocket("ws://127.0.0.1:3000");
client.binaryType = "arraybuffer"
client.onopen = function(){
console.log("连接ws-server服务器成功");
client.send("你好服务器");
}
client.onmessage = function(event){
console.log("客户端收到服务器数据data=", event.data);
}
client.onclose = function(){
console.log("客户端与服务器连接断开");
}
client.onerror = function(){
console.log("客户端和服务器连接出现错误");
}
3)服务器ws-server
var ws = require("ws");
var server = new ws.Server({
port: 3000
});
server.on("connection", function(client_socket){
console.log("一个客户端come in");
client_socket.send("你好,客户端");
client_socket.on("close", function(){
console.log("客户端断开连接");
});
client_socket.on("error", function(err){
console.log("客户端发生错误err=", err);
});
client_socket.on("message", function(data){
console.log("服务器收到客户端信息data=", data);
});
});
console.log("ws-server启动成功");
总结:websocket也是基于tcp协议,这样websocket可以代替net模块用于 逻辑服务器与 网关之间连接,拆包和封包不用管了,很棒!!!