我是套接字编程的新手,在项目中我使用Socket.IO-client Java在Android设备和服务器之间创建套接字连接。服务器端开发人员要求我连接到服务器,然后加入特定的房间/频道。我对第一部分没关系,但我怎样才能加入一个超过套接字的房间?
我的代码如下:
private void ConnectAndJoin() {
Log.e("starting:","starting!");
final Socket socket;
try {
socket = IO.socket("http://192.168.1.6:5000");
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
socket.emit("foo", "hi");
Log.e("status:","connected- sent");
socket.
}
}).on("event", new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.e("status:","event2");
}
}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
Log.e("status:","disconnected");
}
});
socket.connect();
} catch (URISyntaxException e) {
Log.e("status:","done with error");
}

请给我一个帮助!
答案 0 :(得分:4)
您无法从客户端加入带有套接字io的房间。它应该发生在服务器端。
socket.emit('join-room' , roomName or RoomId)
解决这个问题,你需要发出一个套接字,你想要作为数据加入你的房间,并在服务器中监听这个套接字并调用socket.join(),其中包含房间的名称或id发送。
socket.on("join-room", new Emitter.Listener() {
@Override
public void call(Object... args) {
room = args[0];
socket.join(room);
}
});
警告:我不知道java对java devs如果你看到语法错误你可以发表评论我会更新它
希望它有所帮助!