caiiiycuk / js-dos

The best API for running dos programs in browser
https://js-dos.com
1.06k stars 126 forks source link

TCP/IP internet networking support #352

Open levelsio opened 4 weeks ago

levelsio commented 4 weeks ago

It would be very cool to have real TCP/IP internet networking support.

I know JS-DOS supports IPX but I am unsure how to hack that to open websites in Netscape and chat in mIRC.

I am running it on my site at Pieter (dot) com.

Also happy to fund to add support for it. Would be very cool to have full internet support.

Thanks!

rgex commented 4 weeks ago

Even with TCP/IP support It is unlikely you will be able to open any website because Netscape can't handle modern day https. https://www.reddit.com/r/techsupport/comments/4wfyqo/cant_load_reddit_without_https_in_netscape/?rdt=37815

hasnat commented 4 weeks ago

you'd be limited with Same Origin Policy / CSRF you can by proxing requests via your own (same domain) backend. e.g. if php on backend, simply putting you'd be returning <?php echo file_get_contents($_GET['url'])

bad idea having no restriction public proxy

levelsio commented 4 weeks ago

That's fine, I'd just like to open https://pieter.com with JS-DOS running on https://pieter.com

Right now it opens a local copy (INDEX.HTM) but would be cool to have it live (and easier to update)

Also wanna do mIRC with my own IRC server on same domain too

caiiiycuk commented 4 weeks ago

dosbox-x support network adapters, need to bring support to web

levelsio commented 2 weeks ago

Some update after I did more research:

It seems possible with Em-DOSbox by compiling it with SDL_net and then running Winsock to dial up into a virtual ISP via Websockets that routes the internet with a PPP daemon. Kinda like a Websocket proxy.

Em-DOSbox is similar to JS-DOS and also runs in the browser.

I think it'd be a great addition to JS-DOS, especially since IMHO, JS-DOS is way more user friendly and easier to use than Em-DOSbox

And just the idea of being able to browse the live web in Netscape (yes in HTTP not HTTPS) which runs inside JS-DOS in a browser seems supercool (and nerdy :P)

Here's how they enable internet there:

https://github.com/dreamlayers/em-dosbox/issues/32

caiiiycuk commented 2 weeks ago

Thanks to cool research! I am also very interested to enable this, will try to find time to do this.

сб, 9 нояб. 2024 г., 02:59 levelsio @.***>:

Some update after I did more research:

It seems possible with Em-DOSbox by compiling it with SDL_net and then running Winsock to dial up into a virtual ISP via Websockets that routes the internet with a PPP daemon. Kinda like a Websocket proxy.

Em-DOSbox is similar to JS-DOS and also runs in the browser.

I think it'd be a great addition to JS-DOS, especially since IMHO, JS-DOS is way more user friendly and easier to use than Em-DOSboxz

Here's how they enable internet there:

dreamlayers/em-dosbox#32 https://github.com/dreamlayers/em-dosbox/issues/32

— Reply to this email directly, view it on GitHub https://github.com/caiiiycuk/js-dos/issues/352#issuecomment-2465916498, or unsubscribe https://github.com/notifications/unsubscribe-auth/AANFVMA33OAHYO3ZTFA6CQDZ7VF6LAVCNFSM6AAAAABQQXV2VWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRVHEYTMNBZHA . You are receiving this because you commented.Message ID: @.***>

levelsio commented 1 week ago

I have a working prototype here now with help from @jbaicoianu:

https://x.com/levelsio/status/1855359096444334315

It dials up via Websockets into a virtual ISP that routes traffic via a PPP daemon, it works remarkably well

One thing it needs is

Module['websocket'] = { url: 'wss://' };

I'm noob but it seems like it needs this module, which I'm not sure is a Websockets module for Emscripten or DOSbox.

Anyway it seems approachable now if you'd like to add it to JS-DOS and we can test it for you if you like!

levelsio commented 1 week ago

I'd love to fund JS-DOS development for this issue btw. It seems JS-DOS performance is way better than EM-DOSbox and seems easier to use. Getting internet with Websockets to work on it too would be great for me because I'm trying to make an authentic 1995 internet experience at pieter.com

caiiiycuk commented 1 week ago

I agree this is great thing to have, and of course I want to do it, but no time for now. Maybe someone else can implement this.