【问题标题】:Socket.io FileNotFoundException in androidAndroid中的Socket.io FileNotFoundException
【发布时间】:2017-08-07 09:56:09
【问题描述】:

我尝试在note.js和android之间创建socket连接。这是node.js源码

<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://192.168.101.139:8080' );

socket.emit('initialize', { 
    host: "*******",
    entity: "*******"
} );    

socket.on('onconnect', function (data) {
    console.log(data);    
});

socket.on('onerror', function (data) {
    console.log(data);    
});

socket.on('device', function (data) {
    console.log(data);    
});

客户展示! 这是安卓源码

 try {
        SocketIO socket = new SocketIO("http://192.168.101.139:8080");
        socket.connect(new IOCallback() {
            @Override
            public void on(String event, IOAcknowledge ack, Object... args) {
                if ("echo back".equals(event) && args.length > 0) {
                    Log.d("SocketIO", "" + args[0]);
                }
            }

            @Override
            public void onMessage(JSONObject json, IOAcknowledge ack) {
            }

            @Override
            public void onMessage(String data, IOAcknowledge ack) {
            }

            @Override
            public void onError(SocketIOException socketIOException) {
                socketIOException.printStackTrace();
            }

            @Override
            public void onDisconnect() {
                Log.e("onDisconnect","onDisconnect");

            }

            @Override
            public void onConnect() {
                Log.e("onConnect","onConnect");
            }
        });
        socket.emit("echo", "hello");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }

当我运行我的应用程序时,我有 FileNotFoundException。

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    applicationId "com.example.bekakukhalashvili.unipaypalyertest"
    minSdkVersion 19
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner       "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

}

    dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-   core:2.2.2',   {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.0'
testCompile 'junit:junit:4.12'
compile files('libs/socketio.jar')

}

I'm using this socket.io library 在 node.js 方面,我是 socket.io 最新版本 1.7.3 我该如何解决我的问题,我的问题是什么?

【问题讨论】:

  • 你能粘贴详细的错误信息吗
  • 发布你的 gradle 错误信息
  • 我上传了日志截图@Caspain Caldion
  • 我更新了gradle源@quick learner
  • 编译('io.socket:socket.io-client:0.8.3'){排除组:'org.json',模块:'json'}

标签: android node.js sockets socket.io


【解决方案1】:

您需要将 socket.io 附加到 node.js 实例服务器。目前您的实现是独立的,Socket.IO 支持一个或多个客户端和服务器之间基于事件的实时通信。它适用于每个平台、浏览器或设备,并且快速可靠。它通常用于分析、文档协作、流媒体和即时消息传递。

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

io.on('connection', function(client) {  
console.log('Client connected...');

client.on('join', function(data) {
    console.log(data);
});


app.get('/', function(req, res,next) {  
res.json('txt':'hello')
});

server.listen(your_port);

这样会生成一个 url,每当任何尝试连接时,socket.io 也会连接,然后就可以进行实时通信了。

【讨论】:

  • 然后您需要做的是将该 url 公开,因此 android 也可以连接,因为本地主机在您的地址空间之外是不可能的。
  • 要克服这种情况,要么在线托管您的应用程序,例如 Heroku 很棒,要么使用将您的 IP 广播到互联网的隧道软件,这样的软件就是 ngrok。
  • 我的代码是一样的。我们使用的是本地 ip (192.168.101.139:9090) 地址,但这些设备在 vlan 中是相同的。
  • var express = require('express' ); var app = express(); var server = require('http').createServer(app); var io = require('socket.io')(server); var http = require('http'); var urlencode = 要求('urlencode'); io.on('connection', function (socket) { console.log('new connection -> ' + socket.id ); }); server.listen(8080);
  • 那个ip地址是问题,你用的是8080端口,但是你的ip是9090端口
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多