네트워크를 통해 서버-클라이언트 양쪽에 링크를 생성하고 그 링크를 통해 데이터를 주고 받는 것
이때 서버에 임의의 포트번호를 설정한 상태에서 클라이언트에서 해당 포트로 접속 시도하면 서버와 클라이언트가 그 포트번호로 서로 연결되는 상태가 됨
⇒ 여기서 데이터를 주고 받을 수 있음
import Foundation
import SocketIO
class SocketIOManager:NSObject{
static let shared = SocketIOManager()
override init() {
super.init()
socket = self.manager.socket(forNamespace: "/")
}
var manager = SocketManager(socketURL: URL(string: "http://192.168.0.20:3000")!, config: [.log(true), .compress])
var socket : SocketIOClient!
func establishConnection(){
socket.connect()
}
func closeConnection(){
socket.disconnect()
⇒ SocketManager의 ip 부분만 바꾸면 됨
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
...
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
...
}
func applicationDidBecomeActive(_ application: UIApplication) {
SocketIOManager.shared.establishConnection()
}
func applicationDidEnterBackground(_ application: UIApplication) {
SocketIOManager.shared.closeConnection()
}
}
만약 안되는 경우엔 처음 로드하는 부분 class의 viewDidLoad에 추가
SocketIOManager.shared.establishConnection() 추가
override func viewDidLoad() {
super.viewDidLoad()
SocketIOManager.shared.establishConnection()
}