Open ankit7474 opened 2 years ago
I'm facing a problem in the latest version that the on listener is not being called until I emit anything. After emitting, everything works fine.
Here is my socket manager class code:
import Foundation import SocketIO class SocketHelper { static let shared = SocketHelper.init() var socket: SocketIOClient! let manager = SocketManager(socketURL: URL(string: APIConstants.socketLink)!, config: [.log(true)]) private init() { socket = manager.defaultSocket // socket = manager.socket(forNamespace: "/web-1") } func connectSocket(completion: @escaping(Bool) -> () ) { socket.on(clientEvent: .connect) {[weak self] (data, ack) in print("socket connected") completion(true) } socket.connect() } func disconnectSocket() { socket.removeAllHandlers() socket.disconnect() print("socket Disconnected") } func checkConnection() -> Bool { if socket.manager?.status == .connected { return true } return false } func convertImageToBase64String (img: UIImage) -> String { return img.jpegData(compressionQuality: 0.3)?.base64EncodedString() ?? "" } func convertBase64StringToImage (imageBase64String:String) -> UIImage { let imageData = Data(base64Encoded: imageBase64String) let image = UIImage(data: imageData!) return image! } enum Events { case new_message case chat_list var emitterName: String { switch self { case .new_message: return "message" case .chat_list: return "receive_message" } } var listnerName: String { switch self { case .new_message: return "message" case .chat_list: return "receive_message" } } func emit(params: [String : Any]) { SocketHelper.shared.socket.emit(emitterName, params) } func listen(completion: @escaping (Any) -> Void) { SocketHelper.shared.socket.onAny { event in print(event) print("event>>>"+event.event) } SocketHelper.shared.socket.on(listnerName) { (response, emitter) in completion(response) } } func off() { SocketHelper.shared.socket.off(listnerName) } } }
Please help resolving the issue. Thanks in Advance.
I'm facing a problem in the latest version that the on listener is not being called until I emit anything. After emitting, everything works fine.
Here is my socket manager class code:
Please help resolving the issue. Thanks in Advance.