无法使用android客户端连接到socket.io服务器

时间:2016-06-16 04:21:00

标签: java android ios node.js sockets

对于我的NodeJS服务器代码,我使用chat server code中链接的socket io android tutorial

我正在按照上面的教程在我的android项目中使用它。

build.gradle

...
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:design:23.3.0'
    compile 'com.github.nkzawa:socket.io-client:0.3.0'
}

AndroidManifest.xml

...
<uses-permission android:name="android.permission.INTERNET" />
...

MainActivity.java

import com.github.nkzawa.socketio.client.IO;
import com.github.nkzawa.socketio.client.Socket;

public class MainActivity extends AppCompatActivity {

    private Socket mSocket;
    {
        try {
            mSocket = IO.socket("http://localhost:3000");
            Log.e("CONNECTED", "SUCCESS");
        } catch (URISyntaxException e) {
            Log.e("ERROR", "ERROR CONNECTING");
        }
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mSocket.connect();
        mSocket.emit("message", "message");
    }
}

当我编译它时,无论我放置IO.socket(<url>)的URL,它总是会注销它已连接。当我加载应用程序时,它应该发出message并发送"message",但我从来没有在服务器上获取它。我甚至从未在我的服务器日志中获得“用户连接”日志,我已经设置了在有东西连接到它的时候注销。

为了测试以确保我的服务器代码没有错误,我在NodeJS中创建了一个客户端项目:

client.js

var io = require('socket.io-client'),
socket = io.connect('http://localhost:3000');

socket.on('connect', function(){
  console.log("connected")
});

当我运行它时,它和服务器都注销'已连接'。所以java代码出了问题......我无法弄明白。

0 个答案:

没有答案