Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
R
railgun-routing-client
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Railgun
railgun-routing-client
Commits
bb31f7d2
Commit
bb31f7d2
authored
Aug 18, 2021
by
神楽坂玲奈
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test
parent
cfb8273c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
10 deletions
+17
-10
package-lock.json
package-lock.json
+1
-0
src/RouteWriter.ts
src/RouteWriter.ts
+13
-6
src/Server.ts
src/Server.ts
+3
-4
No files found.
package-lock.json
View file @
bb31f7d2
...
...
@@ -5,6 +5,7 @@
"requires"
:
true
,
"packages"
:
{
""
:
{
"name"
:
"railgun-routing-client"
,
"version"
:
"0.0.1"
,
"devDependencies"
:
{
"@types/node"
:
"^16.6.1"
,
...
...
src/RouteWriter.ts
View file @
bb31f7d2
import
config
from
'
../config/config.json
'
;
import
routers
from
'
../config/routers.json
'
;
import
child_process
from
'
child_process
'
;
export
class
RouteWriter
{
static
input
:
string
[]
=
[];
static
reset
()
{
console
.
log
(
`route flush table
${
config
.
table
}
proto
${
config
.
proto
}
`
);
for
(
const
peer
of
routers
.
filter
(
r
=>
r
.
id
!==
parseInt
(
process
.
env
.
RAILGUN_ID
)
&&
r
.
interface
))
{
this
.
input
.
push
(
`route flush table
${
config
.
table
}
proto
${
config
.
proto
}
`
);
for
(
const
peer
of
routers
.
filter
(
(
r
)
=>
r
.
id
!==
parseInt
(
process
.
env
.
RAILGUN_ID
)
&&
r
.
interface
))
{
this
.
set
(
peer
.
id
,
peer
.
id
);
}
}
static
set
(
toId
:
number
,
viaId
:
number
)
{
console
.
log
(
toId
,
viaId
);
const
to
=
routers
.
find
(
r
=>
r
.
id
==
toId
);
const
via
=
routers
.
find
(
r
=>
r
.
id
==
viaId
);
const
to
=
routers
.
find
((
r
)
=>
r
.
id
==
toId
);
const
via
=
routers
.
find
((
r
)
=>
r
.
id
==
viaId
);
for
(
const
address
of
[
to
.
address
,
...
to
.
subnets
])
{
console
.
log
(
`route replace
${
address
}
dev
${
via
.
interface
}
`
);
this
.
input
.
push
(
`route replace
${
address
}
dev
${
via
.
interface
}
table
${
config
.
table
}
proto
${
config
.
proto
}
`
);
}
}
static
commit
()
{
// 可能改成异步的会更好点
child_process
.
execFileSync
(
'
ip
'
,
[
'
-batch
'
,
'
-
'
],
{
input
:
this
.
input
.
join
(
'
\n
'
)
});
this
.
input
=
[];
}
}
src/Server.ts
View file @
bb31f7d2
...
...
@@ -19,6 +19,7 @@ export class Server {
}
RouteWriter
.
set
(
message
.
to
,
message
.
via
);
RouteWriter
.
commit
();
this
.
ack
=
message
.
seq
+
1
;
const
response
:
UploadMessage
=
{
...
...
@@ -43,11 +44,9 @@ export class Server {
continue
;
}
const
reliability
=
(
peer
.
reliability
*
(
config
.
timeout
-
step
))
/
config
.
timeout
;
const
{
id
,
delay
}
=
peer
;
//
jitter 还
没算
const
reliability
=
(
peer
.
reliability
*
(
config
.
timeout
-
step
))
/
config
.
timeout
;
//
TODO: jitter
没算
p
[
id
]
=
{
delay
:
Math
.
round
(
delay
),
jitter
:
0
,
reliability
};
}
...
...
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