【发布时间】:2015-03-31 08:32:13
【问题描述】:
目前我正在使用 Web Socket 制作聊天应用程序。 我的问题是如何在 Web Socket 中调用 Web 服务?
【问题讨论】:
-
你可以查看 GCDWebServer ...
-
github.com/swisspol/GCDWebServer 。在这个链接中没有提到网络套接字
目前我正在使用 Web Socket 制作聊天应用程序。 我的问题是如何在 Web Socket 中调用 Web 服务?
【问题讨论】:
在使用 swift 的 iOS 中,您可以使用两个 Cocoapods Library,这让您的工作轻松无忧,并且
1) Starscream 2)RocketSocket
参考红蜘蛛下面是非常好用的例子:
import UIKit
import Starscream
class ViewController: UIViewController, WebSocketDelegate {
var socket: WebSocket!
override func viewDidLoad() {
super.viewDidLoad()
var request = URLRequest(url: URL(string: "http://localhost:8080")!)
request.timeoutInterval = 5
socket = WebSocket(request: request)
socket.delegate = self
socket.connect()
}
// MARK: Websocket Delegate Methods.
func websocketDidConnect(socket: WebSocketClient) {
print("websocket is connected")
}
func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
if let e = error as? WSError {
print("websocket is disconnected: \(e.message)")
} else if let e = error {
print("websocket is disconnected: \(e.localizedDescription)")
} else {
print("websocket disconnected")
}
}
func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
print("Received text: \(text)")
}
func websocketDidReceiveData(socket: WebSocketClient, data: Data) {
print("Received data: \(data.count)")
}
// MARK: Write Text Action
@IBAction func writeText(_ sender: UIBarButtonItem) {
socket.write(string: "hello there!")
}
// MARK: Disconnect Action
@IBAction func disconnect(_ sender: UIBarButtonItem) {
if socket.isConnected {
sender.title = "Connect"
socket.disconnect()
} else {
sender.title = "Disconnect"
socket.connect()
}
}
}
【讨论】: