无法使用socket.io从Android客户端连接到node.js服务器

时间:2020-06-09 03:21:22

标签: android socket.io socket.io-java-client

我已经实现了socket.io网站中提到的每个步骤,但是不确定为什么我无法从我的Android应用程序连接到Node.js服务器。 以下是我用于实施的文件。

Package.json

{
    "name": "First application"
    "version": "1.0.0",
    "description": "My First Android Application",
    "main": "server.js",
    "dependencies": {
        "express": "^4.17.1",
        "socket.io": "^2.3.0"
        "socket.io-client": "^2.3.0"        
    }
}

Index.js (服务器文件)

var app=require('express')();
var server=require('http').createServer(app);
var io=require('socket.io')(server);

app.get('/',(req,res) => {
    res.send('Server is running on port 3000');
});

io.on('connection',(socket) => {
    console.log('Device connected');
    socket.on('foo',(request) => {
        console.log('Received foo from host');
    });
});

server.listen(3000,() => {
    console.log('listening to port:3000');
});

客户代码

import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;

public class MainActivity extends AppCompatActivity {

    Socket socket;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        try {
            socket = IO.socket("http://192.168.xx.xx:3000/");
            socket.on(Socket.EVENT_CONNECT,  new Emitter.Listener() {

                @Override
                public void call(Object... args) {
                    Log.d("TAG", "Socket Connected!");
                }

            });

            Log.d("socket status",String.valueOf(socket.connected()));
        }
        catch (URISyntaxException e){
            e.printStackTrace();
        }
}
}

build.gradle(:app)添加到Gradle依赖项的下面

    implementation ('io.socket:socket.io-client:1.0.0'){
        exclude group: 'org.json',module:'json'
    }
  1. 我可以通过手机访问192.168.xx.xx:3000。手机和笔记本电脑在同一个wifi网络中。
  2. Socket.connected()返回false。
  3. “套接字已连接!”也没有得到记录。 让我知道是否需要其他分析方法。

0 个答案:

没有答案