2011-12-06 11 views
6

kullanarak Java node.js veri gönderme. Ben aradım ama hiçbir şey gerçekten yararlı oldu. Socket.io için kullanıyorum ama bu durumda bunun için gerçekten uygun görünmüyor. Node.js'nin tüm soket uzantıları mesaj göndermek için değil, mesajları dinlemek ve bir şeyleri yanıtlamak için uygun değildir.Ben prizler aracılığıyla Java node.js veri göndermek için çalışıyorum yuvalarını

Benim Java uygulaması temelde node.js dan do işi yapmak ve geri node.js için bazı sonucunu göndermek için bazı işler almalıdır. Ve hayır, iş node.js üzerinde yapılamaz, Java tarafından yapılması gerekir (aslında Scala'dır ama her neyse).

herkes sizin kim nasıl böyle bir şey yapabilirim biliyor mu?

Teşekkür

+0

yerleşik [net.Socket] (http://nodejs.org/docs/latest/api/net.html#net.Socket) düşündünüz mü? –

+0

Düğümün son sürümüne yükseltildim ve net malzeme '.connect' yöntemine sahip değil gibi görünüyor, dolayısıyla onları kullanamıyorum nedenini bilmiyorum. – Masiar

cevap

14

Böyle bir şey yapmak için node.js içinde sokete yapı kullanabilirsiniz (hem java ve node.js çok kolay, ama noktası alırsınız):

Java :

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.ServerSocket; 
import java.net.Socket; 

public class Test { 

    public static void main(String[] args) { 
     ServerSocket server; 
     Socket client; 
     InputStream input; 

     try { 
      server = new ServerSocket(1010); 
      client = server.accept(); 

      input = client.getInputStream(); 
      String inputString = Test.inputStreamAsString(input); 

      System.out.println(inputString); 

      client.close(); 
      server.close(); 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    public static String inputStreamAsString(InputStream stream) throws IOException { 
     BufferedReader br = new BufferedReader(new InputStreamReader(stream)); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 

     while ((line = br.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 

     br.close(); 
     return sb.toString(); 
    } 

} 

node.js:

var net = require('net'); 

var client = net.connect(1010, 'localhost'); 

client.write('Hello from node.js'); 

client.end(); 

Ve yuva hakkında node.js dokümanın bağlantısı : http://nodejs.org/docs/latest/api/net.html

+0

Cevabınız için teşekkürler! Başka bir sorunum var: net.connect (...) 'yi yaptığımda, düğüm derleyicisi 'Object' ifadesiyle şikâyet ediyor: 'connect' yöntemi yok, neler olduğunu biliyor musun? – Masiar

İlgili konular