【问题标题】:How to create singleton for the WebSocket (Starscream)?如何为 WebSocket(红蜘蛛)创建单例?
【发布时间】:2017-10-24 02:38:46
【问题描述】:

我正在尝试使用 WebSocket 功能创建一个单例,但我只是不知道为什么它不起作用

这是我的单例扩展:

import Starscream

extension WebSocketManager: WebSocketDelegate {
func websocketDidConnect(socket: WebSocket) {
    print("websocket is connected")
}

func websocketDidDisconnect(socket: WebSocket, error: NSError?) {
    if let e = error {
        print("websocket is disconnected: \(e.localizedDescription)")
    } else {
        print("websocket disconnected")
    }
}

func websocketDidReceiveMessage(socket: WebSocket, text: String) {
    print("Received text: \(text)")
}

func websocketDidReceiveData(socket: WebSocket, data: Data) {
    print("Received data: \(data.count)")
}}

我的单身:

final class WebSocketManager: NSObject {
static let sharedInstance = WebSocketManager()
public var socket = WebSocket(url: URL(string: "ws://t-w-a.herokuapp.com/new")!)

private override init() {
    super.init()
    // testing connection of the socket
}

func establishConnection() {
    socket.connect()
}

func closeConnection() {
    socket.disconnect()
}}

当我尝试连接服务器时,什么也没有发生。 这是我的控制器:

class ChatViewController: UIViewController {

@IBOutlet weak var typeText: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()
    WebSocketManager.sharedInstance.establishConnection()
}}

【问题讨论】:

    标签: swift3 websocket singleton starscream


    【解决方案1】:

    我发现了问题,我只是忘记用委托分配套接字变量

    【讨论】:

    • 我只是想花时间对您找到答案并更新此问题表示感谢。
    猜你喜欢
    • 1970-01-01
    • 2019-12-13
    • 2020-02-01
    • 2021-06-03
    • 2011-02-20
    • 2016-04-13
    • 2012-09-24
    • 2020-01-26
    • 1970-01-01
    相关资源
    最近更新 更多