SignalRSwift 2.0.3

SignalRSwift 2.0.3

测试已测试
lan语言 SwiftSwift
许可 MIT
发布的最新发布2018 年 4 月
SwiftSwift 版本3.0
SPM支持 SPM

Jordan Camara 维护。



 
pod try SignalRSwift
依赖~> 4.2
Alamofire~> 3.0
 

  • 作者
  • Jordan Camara

SignalR-Swift 是一个基于 DyKnow 的 https://github.com/DyKnow/SignalR-ObjC 构建 iOS 客户端库。它建立在 AlamoFireStarscream 之上。SignalR-Swift 旨在与 ASP.NET SignalR 一起使用,这是一个为 ASP.NET 开发者设计的全新库,可以使向应用程序添加实时功能变得非常简单。什么是“实时 Web”功能?这是指服务器端代码在发生时实时地将内容推送到已连接的客户端的能力。

安装

使用 CocoaPods 进行安装

CocoaPods 是 Objective-C 的依赖管理器,它自动化并简化了在项目中使用 3rd 方库(如 SignalR-Swift)的过程。更多信息,请参阅"入门"指南。你可以使用以下命令安装它:

$ gem install cocoapods

Podfile

要将SignalR-Swift集成到您的Xcode项目中并使用CocoaPods,请在上面的Podfile中指定它。

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

pod 'SignalRSwift', '~> 2.0.2'

然后,运行以下命令:

$ pod install

示例用法

持久连接

using System.Threading.Tasks;
using Microsoft.AspNet.SignalR;

//Server
public class MyConnection : PersistentConnection 
{
    protected override Task OnReceived(IRequest request, string connectionId, string data) 
    {
        // Broadcast data to all clients
        return Connection.Broadcast(data);
    }
}
import SignalRSwift

//Client
var connection = Connection(withUrl: "https:///endpoint/");

// register for connection lifecycle events
connection.started = {
    print("Connected")
}

connection.reconnecting = {
    print("Reconnecting...")
}

connection.reconnected = {
    print("Reconnected.")
}

connection.closed = {
    print("Disconnected")
}

connection.connectionSlow = { print("Connection slow...") }

connection.error = { error in
  print("Error")
}

connection.start()

Hub

//Server
public class Chat : Hub 
{
    public void Send(string message)
    {
        // Call the addMessage method on all clients            
        Clients.All.addMessage(message);
    }
}
//Client
import SignalRSwift

// Connect to the service
var hubConnection = HubConnection(withUrl: "https:///endpoint")

var chat = hubConnection.createHubProxy(hubName: "chat")

chat.on(eventName: "addMessage") { (args) in
  if let message = args[0] {
    print("Message: \(message)")
  }
}

// register for connection lifecycle events
hubConnection.started = {
    print("Connected")
}

hubConnection.reconnecting = {
    print("Reconnecting...")
}

hubConnection.reconnected = {
    print("Reconnected.")
}

hubConnection.closed = {
    print("Disconnected")
}

hubConnection.connectionSlow = { print("Connection slow...") }

hubConnection.error = { error in
  print("Error")
}

hubConnection.start()

定制查询参数

持久连接

let qs = [
   "param1": "1",
   "param2": "another"
}
var connection = Connection(withUrl: "https:///endpoint", queryString: qs)

Hub连接

let qs = [
   "param1": "1",
   "param2": "another"
}
var hubConnection = HubConnection(withUrl: "https:///endpoint", queryString: qs)

定制请求头

持久连接

let headers = [
   "param1": "1",
   "param2": "another"
]
var connection = Connection(withUrl: "https:///endpoint", queryString: qs)
connection.headers = headers

// alternative usage
var connection = Connection(withUrl: "https:///endpoint", queryString: qs)
connection.addValue(value: "1", forHttpHeaderField: "param1")
connection.addValue(value: "another", forHttpHeaderField: "param2")

中心连接

let headers = [
   "param1": "1",
   "param2": "another"
}
var hubConnection = HubConnection(withUrl: "https:///endpoint", queryString: qs)
hubConnection.headers = headers

// alternative usage
var hubConnection = HubConnection(withUrl: "https:///endpoint", queryString: qs)
hubConnection.addValue(value: "1", forHttpHeaderField: "param1")
hubConnection.addValue(value: "another", forHttpHeaderField: "param2")

网络

  • SignalR-Swift 使用 Alamofire。最低支持的 AlamoFire 版本是 4.2.x
  • SignalR-Swift 使用 Starscream

许可

SignalR-Swift 在 MIT 许可证下可用。更多信息请参阅 许可文件
SignalR-Swift 使用第三方代码,每个都有自己的许可证,更多贡献请参阅 贡献