Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
motorCity
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
node_server
motorCity
Commits
13f7dbe5
Commit
13f7dbe5
authored
Aug 17, 2022
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
92bcc9f2
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
97 additions
and
17 deletions
+97
-17
serverConfig.xml
serverConfig.xml
+1
-1
wsData.ts
src/biz/jgfwnl/wsData.ts
+47
-0
wsData.ts
src/data/interface/wsData.ts
+26
-14
main.ts
src/main.ts
+4
-2
socket_server.ts
src/net/socket_server.ts
+19
-0
No files found.
serverConfig.xml
View file @
13f7dbe5
<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>
src/biz/jgfwnl/wsData.ts
0 → 100644
View file @
13f7dbe5
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
src/data/interface/wsData.ts
View file @
13f7dbe5
...
...
@@ -24,8 +24,8 @@ async function sleep(ms) {
let
heartCount
=
0
;
//心跳
let
heart
=
{
timeout
:
4
0
*
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客户端
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"
;
let
ws
=
new
WebSocket
(
path
,
{
perMessageDeflate
:
false
});
//
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
)
{
...
...
src/main.ts
View file @
13f7dbe5
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
(
"初始化成功"
);
}
...
...
src/net/socket_server.ts
0 → 100644
View file @
13f7dbe5
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
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment