Skip to content

Densyakun/tcp-websocket-tunnel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

25 Commits

Repository files navigation

tcp-websocket-tunnel

Simple tunneling server between TCP and WebSocket.

About use node module:

  • Listening for server start.
  • You can stop server at any time.
  • You can't get a connecting sockets.

Install

For using on shell:

npm install -g tcp-websocket-tunnel

For use node module:

npm install tcp-websocket-tunnel

Listen on TCP server Port 25565, destination to ws://localhost:8080

Shell:

tcp-websocket-tunnel --from 25565 --tows ws://localhost:8080

Node module:

const{ toWebSocket }=require('tcp-websocket-tunnel')constserver=toWebSocket(25565,'ws://localhost:8080')server.on('listening',()=>{console.log('listening')// Any codeserver.close()})

Listen on WebSocket server Port 8080, destination to TCP localhost:25565

Shell:

tcp-websocket-tunnel --from 8080 --toport 25565 --tohost localhost

Node module:

const{ toTCP }=require('tcp-websocket-tunnel')constwss=toTCP(8080,25565,'localhost')console.log('listening')// Any codewss.close()

Node module (Use in express-ws):

constexpress=require('express')constapp=express()constexpressWs=require('express-ws')(app)const{ toTCPOnConnection }=require('tcp-websocket-tunnel')app.ws('/ws',(ws,req)=>toTCPOnConnection(ws,25565,'localhost'))app.listen(process.env.PORT||3000)

Node module (Use in @fastify/websocket):

constfastify=require('fastify')()fastify.register(require('@fastify/websocket'))const{ toTCPOnConnection }=require('tcp-websocket-tunnel')fastify.register(async(fastify)=>{fastify.get('/ws',{websocket: true},(connection,req)=>{toTCPOnConnection(connection.socket,25565,'localhost')})})conststart=async()=>{try{awaitfastify.listen(process.env.PORT||3000,'0.0.0.0')}catch(err){fastify.log.error(err)process.exit(1)}}start()

About

Simple tunneling server between TCP and WebSocket.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published