2012-04-05 85 views
7

我無法讓套接字io發送連接的響應android瀏覽器。 我記錄了參數,它們出現在服務器端,看起來好像客戶端沒有正確連接。我禁用了jsonp,但是我聽說android會回退到xhr。android瀏覽器和套接字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}); 
}); 

這適用於每個瀏覽器(甚至移動Safari瀏覽器,移動FF,移動鉻測試版)。我必須刷新Android瀏覽器4-5次才能最終連接。 BTW,採用流線型JS(_)

UPDATE這似乎在WiFi發生我只是

+0

你配置的服務器?你在哪裏部署? – JakeWilson801 2012-04-18 07:02:51

+2

當你把賞金立即削減你的老代表 – UmNyobe 2012-04-23 08:37:52

回答

0

下面這個簡單的例子適用於我的Android瀏覽器。讓我們知道,如果有具體的你需要什麼,這是不包括以下 - 重要:更改IP號和端口到任何適合您的環境

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

我遇到的問題是,我必須刷新Android瀏覽器,4-5次才能真正連接。我在上面添加了'連接'邏輯。我連接到我的服務器url和端口80,所以我不聲明io.connect中的端口。 – re1man 2012-04-18 16:53:53

1

socket io website,看來你是不正確使用它。

嘗試改變socket.on('connect',function (data) {

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