我是一位可靠的助手,可以为您翻译以下内容:
我有一个使用socket.io的Node.js服务器和一个安卓应用程序。我想让我的应用连接到服务器。(我在本地工作)
首先,我启动服务器: 命令提示符
这是它的代码:
var express = require('express'); // call express
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var port = process.env.PORT || 1234;
app.get('/',function(req,res){
res.send("Welcome to my socket");
});
io.on('connection', function (socket) {
console.log('one user connected : '+socket.id);
// when the client emits 'new message', this listens and executes
socket.on('new message', function (data) {
// we tell the client to execute 'new message'
console.log('this is message :',data);
});
});
http.listen(port, function () {
console.log('Server listening at port %d', port);
});
然后我在这里尝试从我的活动中进行连接:
public class AvisActivity extends AppCompatActivity {
private Socket mSocket;
{
try {
mSocket = IO.socket("http://172.21.191.234:1234");
} catch (URISyntaxException e) { Log.v("AvisActivity", "error connecting to socket");}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_avis);
Log.v("AvisActivity", "try to connect");
mSocket.connect();
Log.v("AvisActivity", "connection sucessful");
}
}
我的问题是,我从服务器上从未看到“一个用户连接”的日志,但我总是在Android日志中看到“尝试连接”和“连接成功”。
有人能为我解决这个谜团吗?
更新
我的代码运行良好,但我遇到了一些Wi-Fi配置,它会阻止Web套接字(实际上是我的学校导致了我的问题)。