2012-04-05 16 views
7

मुझे एंड्रॉइड ब्राउज़र के लिए कनेक्ट पर प्रतिक्रिया भेजने के लिए सॉकेट आईओ प्राप्त करने में परेशानी हो रही है। मैंने पैरामीटर लॉग किए हैं और वे सर्वर की तरफ दिखाई दे रहे हैं, ऐसा लगता है कि क्लाइंट साइड ठीक तरह से कनेक्ट नहीं होता है। मैंने jsonp को अक्षम कर दिया, लेकिन मैंने सुना है कि एंड्रॉइड किसी भी तरह से xhr पर वापस आ जाता है।एंड्रॉइड ब्राउज़र और सॉकेट io

socket.on('connect',function (data) { 
      socket.emit('setNickAndRoom', {nick: nick}, function(response){ 
//response. nothing :(. 
}); 
}); 

client.on("setNickAndRoom", function(nick, fn,_){ 
//etc etc 

fn({msg :nick}); 
}); 

यह प्रत्येक ब्राउज़र (यहां तक ​​कि मोबाइल सफारी, मोबाइल एफएफ, मोबाइल क्रोम बीटा) पर भी काम करता है। आखिर में कनेक्ट होने के लिए मुझे एंड्रॉइड ब्राउजर को 4-5 बार रीफ्रेश करना होगा। Btw, im कारगर js (_)

अद्यतन यह वाईफाई पर हो रहा है का उपयोग करते हुए केवल

+0

को आप सर्वर को कॉन्फ़िगर किया? आप कहां तैनात कर रहे हैं? – JakeWilson801

+2

जब आप एक बाउंटी डालते हैं तो यह आपके पुराने प्रतिनिधि को तुरंत – UmNyobe

उत्तर

3

इस समय सीमित विकल्प:

http://code.google.com/p/weberknecht/

https://github.com/TooTallNate/Java-WebSocket

https://github.com/Gottox/socket.io-java-client

ध्वनि जहां तक ​​सही है WebSockets जाओ। सॉकेट.आईओ का विशिष्ट वायर प्रोटोकॉल जावा में अभी तक लागू नहीं हुआ प्रतीत होता है, इसलिए आपको इसे स्वयं से निपटना पड़ सकता है।

0

इसके लायक होने के लिए, नीचे यह सरल उदाहरण मेरे एंड्रॉइड ब्राउज़र पर काम करता है। हमें पता है कि वहाँ कुछ भी विशिष्ट आप की जरूरत है कि अगर दो, कि नीचे कवर नहीं है - महत्वपूर्ण: जो कुछ भी अपने वातावरण फिट बैठता है के लिए आईपी नंबर और बंदरगाह बदलें:

var express = require('express'), 
    socketio = require('socket.io'), 
    app = express.createServer(), 
    io = socketio.listen(app); 

var index = "<!doctype html>\ 
<html>\ 
    <head>\ 
    <script src=/socket.io/socket.io.js></script>\ 
    <script>\ 
     var socket = io.connect('http://10.0.1.29:3000');\ 
     function send() {\ 
      socket.emit('foo', 'Ben', function(data) {\ 
       alert(data);\ 
      });\ 
     }\ 
    </script>\ 
    </head>\ 
    <body>\ 
    <button onclick='send();'>Send</button>\ 
</html>"; 

app.get('/', function(req, res) { 
    res.send(index); 
}); 

io.sockets.on('connection', function(socket) { 
    socket.on('foo', function(name, f) { 
     f('Hello ' + name); 
    }); 
}); 

app.listen(3000); 
+0

में डाल देता है, जो समस्या है, मुझे यह है कि मुझे एंड्रॉइड ब्राउज़र को रीफ्रेश करना होगा, इसके लिए वास्तव में कनेक्ट होने के लिए 4-5 बार। मैंने ऊपर 'कनेक्ट' तर्क जोड़ा। मैं अपने सर्वर यूआरएल और पोर्ट 80 पर कनेक्ट हूं, इसलिए मैं पोर्ट को io.connect में घोषित नहीं करता हूं। – re1man

1

socket io website के बाद, ऐसा लगता है कि आप नहीं कर रहे हैं इसका उपयोग सही है।

कोशिश बदलते socket.on('connect',function (data) {

socket.on('connection',function (data) {

संबंधित मुद्दे