【发布时间】:2019-10-30 09:13:21
【问题描述】:
我已经制作了一个基本的 nodejs 服务器,当用户连接到服务器时,它会在控制台中记录日志。我为此使用套接字 io,因为我想制作一个聊天应用程序。在我的 android 端,我试图创建到这个本地服务器的连接,但是当我尝试并且 socket.connected 保持为假时,我从来没有得到控制台日志。尝试连接时也永远不会出现错误或其他问题
我尝试了一些来自互联网的示例。我有 1 个示例工作删除了我没有使用的所有内容,但它仍然有效。我将该示例中的粘贴复制到我自己的项目中,但仍然无法正常工作。 这是我使用的example。
这是我项目的代码 节点JS:
var app = require('express')();
var http = require('http').createServer(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
安卓:
public class MainActivity extends Activity {
private Socket socket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ChatApplication app = (ChatApplication) getApplication();
socket = app.getSocket();
socket.connect();
}
}
ChatApplication 类:
public class ChatApplication extends Application {
private Socket mSocket;
{
try {
mSocket = IO.socket("http://192.168.0.109:3000");
} catch (Exception e) {
Log.e("Error", e.toString());
}
}
public Socket getSocket() {
return mSocket;
}
}
【问题讨论】:
-
你是用模拟器连接localhost的吗?尝试使用 IP
10.0.2.2 -
不使用模拟器。我正在使用我自己的安卓设备
-
连接到套接字时遇到什么错误?
标签: java android node.js socket.io