我想在Swift中编写这一行代码

问题描述 投票:0回答:2

我想编写在Swift中用nodejs写的这段代码

io.sockets.in('[email protected]').emit('chat', 'Hello i am julia');

我尝试了这个,但是没有用:

socket.emit("chat", with: ["JLA" , "[email protected]"])
swift socket.io send emit
2个回答
1
投票

您可以使用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: "[email protected]")

干杯!


0
投票

您可以将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()
© www.soinside.com 2019 - 2024. All rights reserved.