2017-04-27 7 views
2

私はノードに新しいです。ユーザーがボタンをクリックできる場所にアプリケーションを作成しようとしていて、何かがTCPを使用してクライアントに送信されます。ここ
は私のECHOサーバ(nodejs.orgからの例)
Node.jsボタンをクリックしてTCP/IPプロトコルで何かを送ってください

const net = require('net'); 

var HOST = '0.0.0.0' 
var PORT = 6969; 

var server = net.createServer(); 
server.listen(PORT, HOST); 
console.log('Server listening on ' + server.remoteAddress + ':' + server.remotePort); 

server.on('connection', function(socket) { 
    console.log('CONNECTED: ' + socket.remoteAddress + ':' + socket.remotePort); 
    socket.write('Hello from server'); 
    // other stuff is the same from here 
    socket.on('data', function(data) { 
    socket.write('reply data ' + data); 
    }); 
}); 

は、別のjsファイルでこの接続を取得する方法を私に説明してもらえます。 module.exports = serverを作ろうとしていますが、別のファイルから情報を送信する方法を理解できません。あなたはこのような何かを試みることができる

+0

を、サービス間に共通の通信ポイントを作る必要があります。これはマイクロサービスアーキテクチャに似ています(今日はすべてマイクロサービスと思われる)。コールバックパラメータを介してソケットオブジェクトを渡すことができます。私の視点からの最良の方法は、1つのサービス内のオブジェクトID =>ソケットを追跡し、2番目のサービスが何かを送信する必要があるときにのみIDを別のサービスに渡し、IDをメインのTCPサーバーに戻すだけです。メッセージをブロードキャストします。 – Gntem

答えて

4

、私を助けてください:あなたは他のサービス間でソケットオブジェクトを共有したい場合は

app.js

var HOST = '0.0.0.0' 
var PORT = 6969; 

var server = net.createServer(); 
server.listen(PORT, HOST); 
console.log('Server listening on ' + server.remoteAddress + ':' + 
server.remotePort); 

const socket = require("./controllers/socket")(server); 
app.get("/socket/connection", socket.connection); 

socket.js

const net = require('net'); 

module.exports = function(server) { 

    module.connection = function(request, response) { 

    server.on('connection', function(socket) { 
     console.log('CONNECTED: ' + socket.remoteAddress + ':' + 
     socket.remotePort); 
     socket.write('Hello from server'); 
     // other stuff is the same from here 
     socket.on('data', function(data) { 
      socket.write('reply data ' + data); 
     }); 
    }); 


    return module; 
}; 
+0

"main.js"ファイルで 'server.socket.write()'を使用できますか、それはどのように動作しますか? – Polly

+0

「この接続を別のjsファイルで取得する方法」はどうですか? – Gntem

+0

@ Mr.Phoenixファイル "main.js"には、例えばボタンのための多くの機能があります。 "server.js"では、私はtcpサーバーを作成し、このファイルはメインファイルに必要です。アプリケーションが起動するとき - >クライアントが私のサーバーに接続し、ボタンをクリックする - >私はクライアントに何かを送るべきです – Polly

関連する問題