У меня есть сервер Node.JS Express и приложение для Android, я пытаюсь соединить сервер и приложение с Socket.io, но оно не работает
Я использую Express Generator и для своего серверадля работы с Socket.io я попробовал шаги здесь: Использование socket.io в Express 4 и Express-Generator / bin / www , который не работал.Я нашел это на github: https://github.com/onedesign/express-socketio-tutorial, и он работал для меня, используя socketIO на моей странице индекса.Поэтому я попытался создать небольшое приложение на Android Studio и использовать сокеты для отправки сообщений.Я не получаю никаких ошибок на этой стороне, но приложение не подключается к моему серверу.
вот мой код Android это MainActivity:
public class MainActivity extends AppCompatActivity {
Button button;
Socket mSocket;
private void attemptSend() {
JSONObject obj = new JSONObject();
try {
obj.put("idhaber", 1);
System.out.println("I'm here");
}catch (JSONException e) { }
mSocket.emit("join", obj);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SocketThing app = new SocketThing();
mSocket = app.getSocket();
mSocket.connect();
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Sending an object
attemptSend();
}
});
}
}
он печатает, я здесь,Вот SocketThing
public class SocketThing {
private Socket mSocket;
{
try {
mSocket = IO.socket("http://192.168.1.24:3000");
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
}
public Socket getSocket() {
return mSocket;
}
Я попробовал здесь localhost, который, как я узнал, не работает, поэтому я использовал 10.0.2.2, а также мой локальный IP-адрес.ни один из них не работал
на стороне сервера:
здесь / www файл
var app = require('../app').app;
var debug = require('debug')('backendim:server');
var http = require('http');
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = require('../app').server;
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port,()=>{
console.log('Node app is running on port' +port)
});
(...)
здесь файл app.js
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var bodyParser = require('body-parser');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
(...)
app.use(function(req, res, next){
res.io = io;
next();
});
(...)
io.on('connection', (socket) => {
io.emit('this', { will: 'be received by everyone'});
console.log('user connected')
socket.on('join', function(nickname) {
console.log("joined")
});
});
module.exports = {app: app, server: server};
"Пользователь, подключенный "не печатается, и я не получаю никаких ошибок, поэтому я знаю, что они не подключаются, но я не знаю почему.