从Mac中的ios客户端调用PC中的呼叫信号器服务器
我从同一个作者那里得到了这个服务器代码表单和这个客户端 因此,运行在PC上的.Net signalR服务器。signalR在控制台应用程序中自托管。该客户端是在iMac中用Swift编写的ios客户端。我正在尝试在Mac中制作代码,以便在PC中查看代码。 我发现的所有示例都是关于从同一服务器调用信号器的,这是没有帮助的。我的服务器url是:我电脑上的信号器是这样的:从Mac中的ios客户端调用PC中的呼叫信号器服务器,ios,asp.net,swift,signalr,Ios,Asp.net,Swift,Signalr,我从同一个作者那里得到了这个服务器代码表单和这个客户端 因此,运行在PC上的.Net signalR服务器。signalR在控制台应用程序中自托管。该客户端是在iMac中用Swift编写的ios客户端。我正在尝试在Mac中制作代码,以便在PC中查看代码。 我发现的所有示例都是关于从同一服务器调用信号器的,这是没有帮助的。我的服务器url是:我电脑上的信号器是这样的: class MainClass { public static void Main(string[] args)
class MainClass
{
public static void Main(string[] args)
{
// 127.0.0.1 myserver.com in /etc/hosts
// Or change myserver.com to localhost
// Using myserver.com instead of localhost to capture requests in Charles Proxy
string url = "http://localhost:8080";
using (WebApp.Start (url)) {
Console.WriteLine ("Server running on {0}", url);
Console.ReadLine ();
}
}
}
这就是我尝试使用的方法(“abc”是我的服务器名):
现在的目标是真正从iMac中的ios客户端实现:
override func viewDidLoad() {
super.viewDidLoad()
// Make sure myserver.com is mapped to 127.0.0.1 in /etc/hosts
// Or change myserver.com to localhost or IP below
// Default is false
SwiftR.useWKWebView = true
// Default is .Auto
SwiftR.transport = .ServerSentEvents
// Hubs...
hubConnection = SwiftR.connect("http://abc:8080") { [weak self] connection in
connection.queryString = ["foo": "bar"]
connection.headers = ["X-MyHeader1": "Value1", "X-MyHeader2": "Value2"]
// This only works with WKWebView on iOS >= 9
// Otherwise, use NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent": "SwiftR iOS Demo App"])
connection.customUserAgent = "SwiftR iOS Demo App"
self?.simpleHub = connection.createHubProxy("simpleHub")
self?.complexHub = connection.createHubProxy("complexHub")
self?.simpleHub.on("notifySimple") { args in
let message = args![0] as! String
let detail = args![1] as! String
print("Message: \(message)\nDetail: \(detail)\n")
}
但是,当我尝试启动连接时,我在Swift中遇到以下错误:
SwiftR无法处理消息4eg2u0fw:错误域=WKErrorDomain
Code=5“JavaScript执行返回了不受支持类型的结果”
UserInfo={NSLocalizedDescription=JavaScript执行返回一个
不受支持的类型的结果}已断开连接
有没有办法解决这个问题 我已经切换了方向,并开始使用此信号代码进行探索:。我在azure中托管了它,并能够通过Swift中的WKWebView代码调用它。检查我的线程。他们有很多关于这方面的代码 请注意,该教程中的代码使用SignalR 2.0.0。默认情况下,除非另有配置,否则SwiftR当前期望2.2.0。
override func viewDidLoad() {
super.viewDidLoad()
// Make sure myserver.com is mapped to 127.0.0.1 in /etc/hosts
// Or change myserver.com to localhost or IP below
// Default is false
SwiftR.useWKWebView = true
// Default is .Auto
SwiftR.transport = .ServerSentEvents
// Hubs...
hubConnection = SwiftR.connect("http://abc:8080") { [weak self] connection in
connection.queryString = ["foo": "bar"]
connection.headers = ["X-MyHeader1": "Value1", "X-MyHeader2": "Value2"]
// This only works with WKWebView on iOS >= 9
// Otherwise, use NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent": "SwiftR iOS Demo App"])
connection.customUserAgent = "SwiftR iOS Demo App"
self?.simpleHub = connection.createHubProxy("simpleHub")
self?.complexHub = connection.createHubProxy("complexHub")
self?.simpleHub.on("notifySimple") { args in
let message = args![0] as! String
let detail = args![1] as! String
print("Message: \(message)\nDetail: \(detail)\n")
}