Я хочу написать эту строку кода в Swift - PullRequest
0 голосов
/ 16 марта 2020

Я хочу написать этот код, который я написал в nodejs на Swift

io.sockets.in('julia.girldeveloper@example.com').emit('chat', 'Hello i am julia');

Я пробовал это, но это не сработало:

socket.emit("chat", with: ["JLA" , "asdf.swift@gmail.com"])

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Вы можете использовать приведенный ниже код на языке Swift.

import SocketIO
import Foundation

let serverURL = "YourServerURL"

class SocketOpration {

    static let shared = SocketOpration(socketURL: URL(string: serverURL)!)

    let socketURL: URL
    var socket:SocketIOClient!
    var manager:SocketManager!


   init(socketURL: URL) {
        self.socketURL = socketURL
        self.manager = SocketManager(socketURL: self.socketURL, config: [.log(false)])
        self.socket = self.manager.defaultSocket
   }

    func setup() {

          socket.on(clientEvent: .connect) {[weak self] data, ack in
              print("socket connected")
          }

          socket.on(clientEvent: .disconnect) {[weak self] data, ack in
            print("socket disconnected")
          }


        // Get emit Call via On method ( emit will fire from Node )

         socket.on("chat") { [weak self](data, ack) in
            if data.count > 0 {
            }
         }

    }

     func chatEmail(senderName: String, email: String) {

        socket.emit("chat", with: [senderName , email]])

    }

}

Использование: -

SocketOpration.shared.chatEmail(senderName: "JLA", email: "asdf.swift@gmail.com")

Cheers !!

0 голосов
/ 16 марта 2020

Вы можете использовать Socket.IO клиент для Swift.

import SocketIO

let manager = SocketManager(socketURL: URL(string: "http://localhost:8080")!, config: [.log(true), .compress])
let socket = manager.defaultSocket

socket.on(clientEvent: .connect) {data, ack in
    print("socket connected")
}

socket.on("currentAmount") {data, ack in
    guard let cur = data[0] as? Double else { return }

    socket.emitWithAck("canUpdate", cur).timingOut(after: 0) {data in
        socket.emit("update", ["amount": cur + 2.50])
    }

    ack.with("Got your currentAmount", "dude")
}

socket.connect()
...