如何在android的socket.IO-client中加入套接字室或频道

如何在android的socket.IO-client中加入套接字室或频道,android,websocket,socket.io,Android,Websocket,Socket.io,我是套接字编程新手,在一个项目中,我用它在android设备和服务器之间创建套接字连接。服务器端开发人员要求我连接到服务器,然后加入特定的房间/通道。我对第一部分没意见,但我怎样才能加入插座上的房间 我的代码如下: private void ConnectAndJoin(){ Log.e(“开始:,“开始!”); 最终插座; 试一试{ 套接字=IO.socket(“http://192.168.1.6:5000"); socket.on(socket.EVENT_CONNECT,新的发射器.L

我是套接字编程新手,在一个项目中,我用它在android设备和服务器之间创建套接字连接。服务器端开发人员要求我连接到服务器,然后加入特定的房间/通道。我对第一部分没意见,但我怎样才能加入插座上的房间

我的代码如下:

private void ConnectAndJoin(){
Log.e(“开始:,“开始!”);
最终插座;
试一试{
套接字=IO.socket(“http://192.168.1.6:5000");
socket.on(socket.EVENT_CONNECT,新的发射器.Listener(){
@凌驾
公共无效调用(对象…参数){
socket.emit(“foo”、“hi”);
Log.e(“状态:,“已连接-已发送”);
插座
}
}).on(“事件”,新发射器.Listener(){
@凌驾
公共无效调用(对象…参数){
Log.e(“状态:”,“事件2”);
}
}).on(Socket.EVENT_断开,新发射器.Listener(){
@凌驾
公共无效调用(对象…参数){
Log.e(“状态:,“断开”);
}
});
socket.connect();
}捕获(URISyntaxException e){
Log.e(“状态:,“完成但有错误”);

}
您不能从客户端加入具有套接字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开发人员,如果您看到语法错误,可以发表评论,我会更新它


希望有帮助!

我想这是问题所在。那我该怎么办?我不太清楚,但我认为你必须删除该行并运行它。答案是否有效?这里的join是什么?我无法得到任何关于join的建议join是进入房间的方法(聆听并发送),应该在服务器上调用,socket.join在客户端不起作用在服务器端是可能的。我的问题是我正在从客户端(android)发送房间号。如何将其发送到服务器端。socket.emit(“join room event”,room_id);在服务器上,您使用socket.on(“join room event”,callback)收听此事件;你能把我加进去吗(tamilairy@gmail.com)或者请分享你的电子邮件。我想讨论一下套接字客户端的一些小问题