我是套接字编程的新手,在一个项目中我使用套接字。io客户端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");
}
请帮帮我!
客户端不能使用socket io加入房间。它应该发生在服务器端。
socket.emit('join-room' , roomName or RoomId)
要解决这个问题,你需要发出一个套接字,其中包含你想要加入的房间作为数据,在服务器端监听这个套接字,并使用已发送的房间的名称或id调用socket.join()。
socket.on("join-room", new Emitter.Listener() {
@Override
public void call(Object... args) {
room = args[0];
socket.join(room);
}
});
警告:我不知道java,所以对于java开发人员,如果你看到语法错误,你可以注释,我会更新它
希望有帮助!