Commit 13f7dbe5 by lixinming

no message

parent 92bcc9f2
<config> <config>
<port>30001</port> <port>30001</port>
<sockentPort>30002</sockentPort>
<rightView> <rightView>
<ipPort>http://10.51.50.136:8090/sql/execute</ipPort> <ipPort>http://10.51.50.136:8090/sql/execute</ipPort>
</rightView> </rightView>
...@@ -13,5 +14,4 @@ ...@@ -13,5 +14,4 @@
<broken>3</broken> <broken>3</broken>
<token>09a98bc555474e058ef90b6cc6e23638</token> <token>09a98bc555474e058ef90b6cc6e23638</token>
</mapView> </mapView>
<sockentPort>30002</sockentPort>
</config> </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) { ...@@ -24,8 +24,8 @@ async function sleep(ms) {
let heartCount = 0; let heartCount = 0;
//心跳 //心跳
let heart = { let heart = {
timeout:40*1000,//40秒一次心跳包 timeout:4*1000,//40秒一次心跳包
serverTimeout:5*1000,//心跳包超时时间 serverTimeout:4*1000,//心跳包超时时间
timeoutObj:null, timeoutObj:null,
notRespontNum:3, //未响应次数阈值 notRespontNum:3, //未响应次数阈值
serverTimeoutObj:null, serverTimeoutObj:null,
...@@ -33,7 +33,7 @@ let heart = { ...@@ -33,7 +33,7 @@ let heart = {
start:(ws) => { start:(ws) => {
if (!heartCount) { if (!heartCount) {
heartCount = 1; heartCount = 1;
console.log("i'm heartStart"); // console.log("i'm heartStart");
} }
//消除延时器 //消除延时器
...@@ -45,6 +45,7 @@ let heart = { ...@@ -45,6 +45,7 @@ let heart = {
heart.timeoutObj = setTimeout( () => { heart.timeoutObj = setTimeout( () => {
//发送心跳包 //发送心跳包
console.log("客户端 发送心跳包");
ws.send("i am heart"); ws.send("i am heart");
//计算答复时间 //计算答复时间
...@@ -62,22 +63,28 @@ let heart = { ...@@ -62,22 +63,28 @@ let heart = {
} }
//ws客户端 //ws客户端
async function createSocket() { let path = "ws://192.168.0.105:30002";
let path = "ws://10.51.50.136:8090/ws/v1"; let ws = new WebSocket(path, {perMessageDeflate: false});
let ws = new WebSocket(path, {perMessageDeflate: false});
async function createSocket() {
// let path = "ws://10.51.50.136:8090/ws/v1";
ws.onclose = async (err) => { ws.onclose = async (err) => {
console.log("连接关闭: ", err); // console.log("连接关闭: ", err);
lockReconnect = false; // lockReconnect = false;
heartCount = 0; // heartCount = 0;
//断线重连 // //断线重连
reconnect(); // reconnect();
console.log("客户端 关闭");
} }
ws.onmessage = (msg) => { ws.onmessage = (msg) => {
//接收数据 //接收数据
console.log(msg); console.log("客户端接收数据 =>", msg);
stats(msg); heart.start(ws);
// stats(msg);
} }
ws.onerror = (error) => { ws.onerror = (error) => {
...@@ -87,12 +94,17 @@ async function createSocket() { ...@@ -87,12 +94,17 @@ async function createSocket() {
ws.onopen = () => { ws.onopen = () => {
heart.start(ws); heart.start(ws);
} }
} }
//todo setTimeout(() => {
ws.close();
}, 10*1000);
export async function initWSData() { export async function initWSData() {
await createSocket(); await createSocket();
console.log();
} }
export function stats(data) { 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 { getHardware } from "./data/interface/hardwareData";
import { getTestLicense, getCsgkDayData, initData, getTestAnalysis } from "./data/interface/interfaceService"; import { getTestLicense, getCsgkDayData, initData, getTestAnalysis } from "./data/interface/interfaceService";
import { getMap } from "./data/interface/mapInterfaceData"; import { getMap } from "./data/interface/mapInterfaceData";
...@@ -9,8 +10,9 @@ import { BizError } from "./util/bizError"; ...@@ -9,8 +10,9 @@ import { BizError } from "./util/bizError";
async function lanuch() { async function lanuch() {
// await initConfig(); // await initConfig();
await initData(); // await initData();
httpServer.createServer(port); httpServer.createServer(port);
initSocketServer(sockentPort);
console.log('This indicates that the server is started successfully.'); console.log('This indicates that the server is started successfully.');
console.log("初始化成功"); 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