[英]How can I use SocketRocket in a Swift Project?
我是iOS編程的新手,仍然在學習Swift。 我試圖在Swift項目中使用SocketRocket庫https://github.com/facebook/SocketRocket ,以便通過Web套接字連接到使用MAMP創建的Web服務器。 我知道有Starscream https://github.com/daltoniam/Starscream准備在Swift中使用,但它給出了錯誤,並且無法按我在此處的說明進行操作: 如何解決“ websocket已斷開連接:無效的HTTP升級”錯誤使用紅蜘蛛
Rocket Socket是用Objective-C編寫的,我不理解它,試圖查看文檔,但是我不知道如何將其轉換為Swift並在我的項目中實現其方法。 已經使用Cocoapods安裝了SocketRocket。 因此它不需要標題橋接文件,因為我使用了“ use_frameworks!”。 在podfile中。
ViewController.swift文件:
導入UIKit導入SocketRocket
class ViewController:UIViewController,SRWebSocketDelegate {//錯誤:類型'ViewController'不符合協議'SRWebSocketDelegate'是否要添加協議存根?
var urlRequest = NSURLRequest(URL: NSURL(string: "http://host.com")) //EROOR: Cannot convert value of type 'NSURL?' to expected argument type 'URL' Insert ' as! URL'
var socket = SRWebSocket(URLRequest: urlRequest)
//let socket = SRWebSocket(url: "ws://localhost:8888")
override func viewDidLoad() {
super.viewDidLoad()
socket.open()
socket.send()
socket.close()
}
func webSocketDidOpen(webSocket: SRWebSocket!) {
print("socket opened");
}
func webSocket(webSocket: SRWebSocket!, didCloseWithCode code: Int, reason: String!, wasClean: Bool) {
print("code: \(code) reason:\(reason) ");
}
func webSocket(webSocket: SRWebSocket!, didFailWithError error: NSError!) {
print("error: \(error)");
}
func webSocket(webSocket: SRWebSocket!, didReceiveMessage message: AnyObject!) {
print("received message")
}
}
這是我嘗試編寫的代碼...但是有錯誤,如注釋中所示。 希望你們能幫助我。 謝謝!!! :)
嗨,克里斯蒂安,您可以使用也使用Starscream的“ pod'Socket.IO-Client-Swift'”。
有關文檔,您也可以在這里查看。 Socket.IO-客戶端-Swift
private var socket: SocketIOClient?
private var manager: SocketManager?
private func initializeSocket() {
self.manager = SocketManager(socketURL: URL(string: self.baseUrlForSocket)!, config: [.log(true), .forceNew(true), .reconnectAttempts(10), .reconnectWait(6000), .connectParams(["authorization": authKey]), .forceWebsockets(true), .compress])
self.socket = manager?.defaultSocket
}
這里baseUrlForSocket是您提供的套接字URL,而authKey是授權值。
如有任何疑問,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.