如何为 WebSocket(红蜘蛛)创建单例?

Posted

技术标签:

【中文标题】如何为 WebSocket(红蜘蛛)创建单例?【英文标题】:How to create singleton for the WebSocket (Starscream)? 【发布时间】: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()

【问题讨论】:

【参考方案1】:

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

【讨论】:

我只是想花时间对您找到答案并更新此问题表示感谢。

以上是关于如何为 WebSocket(红蜘蛛)创建单例?的主要内容,如果未能解决你的问题,请参考以下文章

如何为我的 API 和我的 websocket 设置路由

如何为 API Gateway Websocket 编写 Java Lambda 处理程序?

已解决 - 如何为 Spring 中的 WebSocket 升级请求自定义 HTTP 响应?

如何为websocket连接握手指定URL?

如何为 WebSocket 协议配置 AWS ELB 和 Nginx? [关闭]

如何为整个 Qt 应用程序创建一个菜单?