Commit 13f7dbe5 by lixinming

no message

parent 92bcc9f2
<config>
<port>30001</port>
<sockentPort>30002</sockentPort>
<rightView>
<ipPort>http://10.51.50.136:8090/sql/execute</ipPort>
</rightView>
......@@ -13,5 +14,4 @@
<broken>3</broken>
<token>09a98bc555474e058ef90b6cc6e23638</token>
</mapView>
<sockentPort>30002</sockentPort>
</config>
import { initWSData } from "../../data/interface/wsData";
import { Socket } from "../../net/socket_server";
let connectionPool = {};
//广播消息
export async function sendMsg(data) {
for (let key in connectionPool) {
connectionPool[key].send({code:200, success:true, data});
}
}
function analysisUserUrl(req) {
let ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress;
return ip;
}
export async function initSocketServer(port) {
Socket.createServer(port, function (wss) {
wss.on('connection', function(ws, req) {
let ip = analysisUserUrl(req);
console.log("连接成功 => userId:", ip);
connectionPool[ip] = ws;
ws.on('message', function(data) {
//回应心跳包
console.log(data);
console.log(ws);
if (data == 'i am heart') ws.send('{success:true, code:199}');
});
ws.on('close', function (data, req){
console.log("close", data, req);
});
});
});
//todo 测试连接代码
test();
}
function test() {
initWSData();
}
\ No newline at end of file
......@@ -24,8 +24,8 @@ async function sleep(ms) {
let heartCount = 0;
//心跳
let heart = {
timeout:40*1000,//40秒一次心跳包
serverTimeout:5*1000,//心跳包超时时间
timeout:4*1000,//40秒一次心跳包
serverTimeout:4*1000,//心跳包超时时间
timeoutObj:null,
notRespontNum:3, //未响应次数阈值
serverTimeoutObj:null,
......@@ -33,7 +33,7 @@ let heart = {
start:(ws) => {
if (!heartCount) {
heartCount = 1;
console.log("i'm heartStart");
// console.log("i'm heartStart");
}
//消除延时器
......@@ -45,6 +45,7 @@ let heart = {
heart.timeoutObj = setTimeout( () => {
//发送心跳包
console.log("客户端 发送心跳包");
ws.send("i am heart");
//计算答复时间
......@@ -62,22 +63,28 @@ let heart = {
}
//ws客户端
async function createSocket() {
let path = "ws://10.51.50.136:8090/ws/v1";
let ws = new WebSocket(path, {perMessageDeflate: false});
let path = "ws://192.168.0.105:30002";
let ws = new WebSocket(path, {perMessageDeflate: false});
async function createSocket() {
// let path = "ws://10.51.50.136:8090/ws/v1";
ws.onclose = async (err) => {
console.log("连接关闭: ", err);
lockReconnect = false;
heartCount = 0;
//断线重连
reconnect();
// console.log("连接关闭: ", err);
// lockReconnect = false;
// heartCount = 0;
// //断线重连
// reconnect();
console.log("客户端 关闭");
}
ws.onmessage = (msg) => {
//接收数据
console.log(msg);
stats(msg);
console.log("客户端接收数据 =>", msg);
heart.start(ws);
// stats(msg);
}
ws.onerror = (error) => {
......@@ -87,12 +94,17 @@ async function createSocket() {
ws.onopen = () => {
heart.start(ws);
}
}
//todo
setTimeout(() => {
ws.close();
}, 10*1000);
export async function initWSData() {
await createSocket();
console.log();
}
export function stats(data) {
......
import { initConfig, port } from "./config/serverConfig";
import { initSocketServer } from "./biz/jgfwnl/wsData";
import { initConfig, port, sockentPort } from "./config/serverConfig";
import { getHardware } from "./data/interface/hardwareData";
import { getTestLicense, getCsgkDayData, initData, getTestAnalysis } from "./data/interface/interfaceService";
import { getMap } from "./data/interface/mapInterfaceData";
......@@ -9,8 +10,9 @@ import { BizError } from "./util/bizError";
async function lanuch() {
// await initConfig();
await initData();
// await initData();
httpServer.createServer(port);
initSocketServer(sockentPort);
console.log('This indicates that the server is started successfully.');
console.log("初始化成功");
}
......
import * as WebSocket from 'ws';
export class Socket {
static createServer(port, callback) {
const wss = new WebSocket.Server({
port,
threshold:1024, // 大小(以字节为单位),低于此大小的消息不压缩
maxPayload:9999,
});
// fallback(wss);
callback(wss);
console.log("configCenter socketServer listen on port:"+port);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment