Android Node.js Socket.io总是连接成功

时间:2015-06-26 17:22:05

标签: android node.js socket.io

我想使用Socket.io与pc和Android之间进行通信。代码:

http://socket.io/blog/native-socket-io-and-android/

public class MainActivity extends ActionBarActivity {

private Boolean socketConnection;
TextView tw;
Socket mSocket;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tw = (TextView)findViewById(R.id.textView);

    try {
        mSocket = IO.socket("http://localhost:3000");
        mSocket.connect();
        socketConnection = true;
        tw.setText("Yes");
    }catch(URISyntaxException ex) {
        socketConnection = false;
        tw.setText("No");
    }

}

我在调试应用程序时;服务器应用程序虽然关闭,客户端说连接成功。当我打开服务器应用程序时,服务器应用程序无法看到客户端。

1 个答案:

答案 0 :(得分:2)

@Patosai指出,您的代码问题在于您正在连接localhost:3000。这意味着您正在尝试连接运行应用程序的设备(Android手机或模拟器)。这将始终表明它已连接,因为设备始终可以与自身连接。

假设您连接到与PC相同的网络,则需要找到您的PC的IP地址以及您选择进行通信的端口。例如,如果您确定您的PC的IP为123.456.2.1且您的Socket.IO代码中的端口为4000,则您需要写mSocket = IO.socket("http://123.456.2.1:4000")