2013-03-26 6 views
5

से अनुरोध किया है कि मैं एक अनुरोधित यूआरएल पार्स करना चाहता हूं। जब मैंने websocket.io का उपयोग किया तो मेरे पास एक अनुरोध-वस्तु थी जिसे मैं पार्स कर सकता था। मैं socket.io के साथ यह कैसे कर सकता हूँ?node.js - socket.io parse ने url

उदाहरण:

http://localhost:4000/foo 

कैसे मैं "foo" बाहर निकल सकते हैं? मैंने कोशिश की:

io.sockets.on('connection', function (socket) { 


    console.log(socket.handshake.address.address); 
      console.log(socket.handshake.url); 
} 

लेकिन यह "foo"

उत्तर

1

उपयोग URL API मुद्रित नहीं करता है। http://nodejs.org/docs/latest/api/url.html

u = url.parse(url) 
console.log(u.path) 
+0

लेकिन क्या मुझे स्ट्रिंग मिल सकती है जिसे मैं पार्स कर सकता हूं? – poppel

+0

@poppel ओह! क्षमा करें, मुझे नहीं पता था कि आपके पास यह जानकारी नहीं थी। आप क्लाइंट साइड पर 'window.location' का उपयोग करके हमेशा यूआरएल प्राप्त कर सकते हैं, और उस जानकारी को अपने डेटा के साथ पास कर सकते हैं। – Munim

+0

बस ध्यान दें कि सही पता भेजने के लिए पृष्ठ पर भरोसा करना बहुत बुरा है। यदि आपके पास किसी प्रकार की रूम सिस्टम या प्रमाणीकरण प्रणाली थी जो आपके द्वारा एक विशिष्ट यूआरएल पर निर्भर थी, तो उपयोगकर्ता बस इसे खराब कर सकता था और अन्य स्थानों तक पहुंच प्राप्त कर सकता था। – JamEngulfer

3

Btw - आपका दृष्टिकोण यदि आप पथ तत्वों के बजाय socketio कनेक्शन के लिए मानकों को आपूर्ति कर रहे हैं सही है। मेरे सॉकेट कनेक्शन में पैरा जोड़ने के लिए https://github.com/pkyeck/socket.IO-objc का उपयोग करते समय नोडजेस सॉकेटियो के साथ यह मेरी समस्या हल हो गई।

उदाहरण के लिए:

[socketIO connectToHost:@"localhost" onPort:8888 withParams:[NSDictionary dictionaryWithObject:@"52523f26f5b23538f000001c" forKey:@"player"]]; 

निर्माणों यूआरएल इस प्रकार है:

http://localhost:8888/socket.io/1/?t=16807&player=52523f26f5b23538f000001c 

पैरामीटर socket.handshake.query

socketio.listen(server).on('connection', function(socket) { 
console.log('socket info = ', socket.handshake.query.player); 
0

मैं तक पहुँचने कर रहा हूँ में सर्वर पर जाया जा सकता है इस तरह का यूआरएल:

io.on('connection', function(conn){ 
    console.log(conn.handshake.headers.referer); 
}); 
संबंधित मुद्दे