2011-12-06 23 views
6

का उपयोग करते हुए node.js से जावा तक डेटा भेजना मैं node.js से डेटा को सॉकेट के माध्यम से भेजने की कोशिश कर रहा हूं। मैंने चारों ओर खोज की लेकिन कुछ भी वास्तव में उपयोगी नहीं था। मैं socket.io के लिए उपयोग किया जाता है लेकिन इस मामले में यह वास्तव में इसके लिए उपयुक्त प्रतीत नहीं होता है। ऐसा लगता है कि node.js के लिए सभी सॉकेट एक्सटेंशन वास्तव में संदेश भेजने के लिए उपयुक्त नहीं हैं, बल्कि संदेशों को सुनकर और कुछ जवाब देने के लिए उपयुक्त नहीं हैं।सॉकेट

मेरा जावा ऐप मूल रूप से node.js से कुछ काम प्राप्त करना चाहिए, काम करें और कुछ परिणाम node.js पर वापस भेजें। और नहीं, काम node.js पर नहीं किया जा सकता है, इसे जावा द्वारा किया जाना है (जो वास्तव में स्कैला है लेकिन जो भी हो)।

क्या आप में से कोई भी जानता है कि मैं ऐसा कुछ कैसे कर सकता हूं?

धन्यवाद

+0

क्या आपने अंतर्निहित [net.Socket] (http://nodejs.org/docs/latest/api/net.html#net.Socket) पर विचार किया है? –

+0

मैंने नोड के अंतिम संस्करण में अपग्रेड किया और ऐसा लगता है कि नेट स्टफ में '। कनेक्ट' विधि नहीं है, इस प्रकार मैं उनका उपयोग नहीं कर सकता, मुझे नहीं पता कि क्यों। – Masiar

उत्तर

14

आप Node.js में सॉकेट में निर्माण का उपयोग इस तरह कुछ करने के लिए कर सकते हैं (दोनों जावा और Node.js में बहुत आसान है, लेकिन आप बिंदु मिल जाएगा):

जावा :

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(); 

और सॉकेट के बारे में Node.js दस्तावेज़ के लिए लिंक : http://nodejs.org/docs/latest/api/net.html

+0

उत्तर के लिए धन्यवाद! मुझे एक और समस्या है: जब मैं 'net.connect (...)' करता हूं तो नोड कंपाइलर शिकायत करता है कि 'ऑब्जेक्ट # में कोई तरीका' कनेक्ट 'नहीं है, क्या आप जानते हैं कि क्या हो रहा है? – Masiar