Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Silkroad Online > SRO Private Server > SRO PServer Guides & Releases
You last visited: Today at 20:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[RELEASE] node-sro-proxy - Opensource middleware/security layer

Discussion on [RELEASE] node-sro-proxy - Opensource middleware/security layer within the SRO PServer Guides & Releases forum part of the SRO Private Server category.

Closed Thread
 
Old   #1

 
Otakanikaru's Avatar
 
elite*gold: 133
Join Date: Nov 2013
Posts: 454
Received Thanks: 455
Post [RELEASE] node-sro-proxy - Opensource middleware/security layer

Moved
Otakanikaru is offline  
Thanks
17 Users
Old 09/10/2020, 19:27   #2
 
DarkShroud's Avatar
 
elite*gold: 165
Join Date: Nov 2019
Posts: 234
Received Thanks: 196
thanks for contributing , a new step in a dead community ...
DarkShroud is offline  
Thanks
3 Users
Old 09/12/2020, 20:48   #3

 
Otakanikaru's Avatar
 
elite*gold: 133
Join Date: Nov 2013
Posts: 454
Received Thanks: 455
Quote:
Originally Posted by dR. [d3V][GM][PR0] 39YP7 View Post
nice seeing someone making an effort
but guess what, it's not going to do **** the game is dead you bunch of retards
Thats how you call yourself?
- Because we are the game.
Otakanikaru is offline  
Thanks
1 User
Old 09/14/2020, 19:35   #4

 
kebabas1600's Avatar
 
elite*gold: 10
Join Date: Oct 2008
Posts: 1,945
Received Thanks: 955
Quote:
Originally Posted by Artuuro_lv View Post
Thats how you call yourself?
- Because we are the game.
lets play this game
atm still fixing packets since some of br ones aint same xD
kebabas1600 is offline  
Thanks
2 Users
Old 09/18/2020, 10:29   #5

 
Otakanikaru's Avatar
 
elite*gold: 133
Join Date: Nov 2013
Posts: 454
Received Thanks: 455
Quote:
Originally Posted by kebabas1600 View Post
lets play this game
atm still fixing packets since some of br ones aint same xD
just set in your module your config to dev: true and see the packets
Otakanikaru is offline  
Old 11/10/2020, 10:49   #6

 
Otakanikaru's Avatar
 
elite*gold: 133
Join Date: Nov 2013
Posts: 454
Received Thanks: 455
New version is out!
Changelog:
- Moved middlewares/services to proxy configuration
- Completely re-written proxy logic to fit proposal below
Otakanikaru is offline  
Thanks
1 User
Old 11/10/2020, 22:03   #7
 
elite*gold: 0
Join Date: Mar 2020
Posts: 303
Received Thanks: 20
Quote:
Originally Posted by Artuuro_lv View Post
New version is out!
Changelog:
- Moved middlewares/services to proxy configuration
- Completely re-written proxy logic to fit proposal below
what this does? have to add inside filter?
Beba Army is offline  
Old 11/11/2020, 02:44   #8

 
Otakanikaru's Avatar
 
elite*gold: 133
Join Date: Nov 2013
Posts: 454
Received Thanks: 455
Quote:
Originally Posted by Beba Army View Post
what this does? have to add inside filter?
This is the way how the proxy now works (latest commits).
Basically there is a master process that will spawn a child for each client connected and this child will act as the proxy while master is routing the packets from to client separately and redirects them to slaves.
This way we can keep the client connections very stable and smooth as each instance works with client separately - only doubts that I have not yet tested is the limitations of process.fork in nodejs.
Will let know soon.
Otakanikaru is offline  
Old 11/11/2020, 17:50   #9

 
SubZero**'s Avatar
 
elite*gold: 270
Join Date: Apr 2017
Posts: 1,030
Received Thanks: 520
Awesome work
SubZero** is offline  
Thanks
1 User
Old 11/17/2020, 13:46   #10
 
gigola123's Avatar
 
elite*gold: 0
Join Date: Jun 2007
Posts: 722
Received Thanks: 390
Quote:
Originally Posted by Artuuro_lv View Post
New version is out!
Changelog:
- Moved middlewares/services to proxy configuration
- Completely re-written proxy logic to fit proposal below
Nice idea, how it'll work exactly ? Every slave will be a little "tcp proxy" ? Then return to Master everytime there is a packet processing? Then master will accept or not to forward ?

Or you put all the same logic on every slave ?

Sorry didn't make a look on code before asking this
gigola123 is offline  
Old 11/19/2020, 12:02   #11

 
Otakanikaru's Avatar
 
elite*gold: 133
Join Date: Nov 2013
Posts: 454
Received Thanks: 455
Quote:
Originally Posted by gigola123 View Post
Nice idea, how it'll work exactly ? Every slave will be a little "tcp proxy" ? Then return to Master everytime there is a packet processing? Then master will accept or not to forward ?

Or you put all the same logic on every slave ?

Sorry didn't make a look on code before asking this
Yea you've guessed right - master decides whether the packet will be routed or not - slave can do that as well with this I will be also able to have good way of packet broadcasting, e.g. the master could broadcast a message from another slave (lets say event bot) to the ones it wants or everyone and so on..

Next steps will be implementing this and making an scriptable game event API.

Another cool thing:
(entire sro database turned into JavaScript models / schemas) with little bit of expressjs magic this becomes an actual rest API that slaves can use to get / send data to.
Attached Images
File Type: jpg Screenshot_1.jpg (134.5 KB, 823 views)
Otakanikaru is offline  
Old 11/19/2020, 12:54   #12
 
gigola123's Avatar
 
elite*gold: 0
Join Date: Jun 2007
Posts: 722
Received Thanks: 390
Quote:
Originally Posted by Artuuro_lv View Post
Yea you've guessed right - master decides whether the packet will be routed or not - slave can do that as well with this I will be also able to have good way of packet broadcasting, e.g. the master could broadcast a message from another slave (lets say event bot) to the ones it wants or everyone and so on..

Next steps will be implementing this and making an scriptable game event API.

Another cool thing:
(entire sro database turned into JavaScript models / schemas) with little bit of expressjs magic this becomes an actual rest API that slaves can use to get / send data to.

What about master multiprocess, in case there is multi agent server filter ? In case you want a communication between all AgentServer (for event purpose). I used redis but too much factor to handle and I wanted something simple.

This filter if perfect to use on an other server, like a simple server @ digitalocean, really nice work Artuuro . I'll probably try to optimize SilkroadSecuiryJS if I've time in futur.

And really nice stuff about the Sro DB representation with Sequelize model, I use Sequelize for 5 years now and it's a real perfect orm, I'll use your stuff here for some test purpose, if you want I contributed on a little lib for handle more querystring stuff (for use "like", "between" ect..) ().

I hope I'll have time to contribe to this project, too much work thoses weeks, GG for everything
gigola123 is offline  
Old 11/19/2020, 16:45   #13

 
Otakanikaru's Avatar
 
elite*gold: 133
Join Date: Nov 2013
Posts: 454
Received Thanks: 455
Quote:
Originally Posted by gigola123 View Post
What about master multiprocess, in case there is multi agent server filter ? In case you want a communication between all AgentServer (for event purpose). I used redis but too much factor to handle and I wanted something simple.

This filter if perfect to use on an other server, like a simple server @ digitalocean, really nice work Artuuro . I'll probably try to optimize SilkroadSecuiryJS if I've time in futur.

And really nice stuff about the Sro DB representation with Sequelize model, I use Sequelize for 5 years now and it's a real perfect orm, I'll use your stuff here for some test purpose, if you want I contributed on a little lib for handle more querystring stuff (for use "like", "between" ect..) ().

I hope I'll have time to contribe to this project, too much work thoses weeks, GG for everything
ATM been only doing this for single agentserver as my own project runs only one - might look into that at future.
Otakanikaru is offline  
Old 11/26/2020, 23:59   #14

 
Otakanikaru's Avatar
 
elite*gold: 133
Join Date: Nov 2013
Posts: 454
Received Thanks: 455
New version is out!
Changelog:
- Shared DB api server - workers can now access database without doing it on the same thread
- Fully exported schemas in sequelize.js for entire SRO database.
- Added 3 new API services representing main databases used.
- Added auto-crud.
- IP Blacklist example

New updates (27.11.2020):
Changelog:
- Added IP/HWID blocking (blacklisting).
- Added HWID dll (comes from sr_proxy)
- More express handles
- Added weather packet handler allows to set constant type of weather in game (snowing everywhere, all the time).
Attached Images
File Type: jpg Screenshot_6.jpg (149.5 KB, 83 views)
File Type: jpg Screenshot_7.jpg (76.5 KB, 82 views)
File Type: jpg Screenshot_8.jpg (143.7 KB, 63 views)
Otakanikaru is offline  
Thanks
2 Users
Old 12/12/2020, 16:40   #15

 
Otakanikaru's Avatar
 
elite*gold: 133
Join Date: Nov 2013
Posts: 454
Received Thanks: 455
New version 2.0.2
- Refactoring/Code improvements
- Actually working HWID/IP limits
- HWID blacklisting
- User Session + Connection / DC detection
- Added Shared "cross-database" API access for all server modules
- Instance saving/updating in database
- User can now be gracefully disconnected from almost anywhere in the code
- Added ".bat" launchers for noobs

Required pk2 edits
TextUISystem.txt
Code:
1	UIIO_SMERR_ADULT_ONLY_SERVER	해당 서버는 만 18세 이상의 성인만 접속 할 수 있습니다.	0	0	0	0	0	Connection limit reached.	ChØ ng*êi trªn 18 tuæi míi ®*îc phÐp kÕt nèi víi m¸y chñ	0	0	0	0	0	0
Code:
1	UIIO_CLIENT_START_CONTENT_FAIL_BILLING_RELATED	빌링 서버 에러로 접속할 수 없습니다. 	0	0	0	0	0	HWID Validation failed!\nPlease restart your client.	Kh«ng thÓ kÕt nèi do lçi cña m¸y chñ	0	0	0	0	0	0
Code:
1	UIO_MSG_ERROR_NO_ACCOUNT_INFO_GOTO_HOMEPAGE	게임에 접속하기 위한 추가 정보가 없습니다.	0	0	0	0	0	Access denied!	Kh«ng t×m thÊy th«ng tin chi tiÕt cÇn thiÕt ®Ó kÕt nèi víi trß ch¬i	0	0	0	0	0	0	
1	UIO_MSG_ERROR_NO_ACCOUNT_INFO_GOTO_HOMEPAGE_1	추가정보 입력을 위해 실크로드 홈페이지로 이동합니다.	0	0	0	0	0	Visit our website for additional information.	B¹n ®ang vµo chuyÓn sang trang chñ cña Con §*êng T¬ Lôa ®Ó khai b¸o thªm th«ng tin	0	0	0	0	0	0	
1	UIO_MSG_GOTO_URL	https://silkroad.pw	0	0	0	0	0	https://silkroad.pw/	https://silkroad.pw/	0	0	0	0	0	0

Attached Images
File Type: jpg proxy.jpg (122.4 KB, 967 views)
Otakanikaru is offline  
Thanks
5 Users
Closed Thread

Tags
fast, nodejs, proxy, safe, silkroad


Similar Threads Similar Threads
[WIP] node-sr-proxy (NodeJS silkroad proxy)
08/08/2022 - SRO Coding Corner - 10 Replies
NodeJS based packet interceptor & middle-ware layer for MMORPG Silkroad Online Game Client <---> Server. Public version repo: https://gitlab.com/sroparadise/node-sro_proxy Features - Packet whitelisting - Packet intercepting & manipulation - Multi module - Fully ECMAScript 9 - Basic middlewares:
[PHP] [NODE.JS][SOCKET.IO] Steve - Twitch BOT [NODE.JS][SOCKET.IO][PHP]
07/18/2015 - Web Development - 0 Replies
//Falsche Sektion? Dann bitte ich einen Moderatoren meinen Thread in die richtige Sektion zu verschieben. Danke! Steve Was genau ist Steve? Steve ist ein Aufpasser, ein visionär! Im endeffekt tut er das selbe wie die anderen Twitch Bot's. Er achtet auf jede Kleinigkeit und sorgt dafür, dass ruhe und frieden im Chat herrscht, damit jeder einen angenehmen Stream genießen kann. Welche Funktionen wird Steve beinhalten? Jeder Benutzer hat ein freundliches Benutzerinterface, wo er den Bot...
Layer Hilfe zu ! Layer Helps ! Layer Dosyasi Yardimi
03/08/2014 - Nostale - 5 Replies
Germany: Hallo Ich bin neu, um die Suche . Ich weiß nicht, Englisch und Deutsch mit Übersetzungen schrieb .NosTale Schicht-Server-Dateien auf dieser Seite sah ich s .Ich heruntergeladen und auf meinem Computer installiert , sp Er trägt Codes .Wie kann ich normalisieren ,Taste g pressure're tragen , moobs ,maps Namens alle zts , Ich lief von der Seite an die betreffenden Port , Turkish Local. exe konnte ich nicht finden Meine Anfrage von Ihnen 1-Turkish Local.exe 2-Turkish Port...



All times are GMT +1. The time now is 20:45.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.