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.
For using on shell:
npm install -g tcp-websocket-tunnelFor use node module:
npm install tcp-websocket-tunnelShell:
tcp-websocket-tunnel --from 25565 --tows ws://localhost:8080Node module:
const{ toWebSocket }=require('tcp-websocket-tunnel')constserver=toWebSocket(25565,'ws://localhost:8080')server.on('listening',()=>{console.log('listening')// Any codeserver.close()})Shell:
tcp-websocket-tunnel --from 8080 --toport 25565 --tohost localhostNode 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()