从Mac中的ios客户端调用PC中的呼叫信号器服务器

从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)

我从同一个作者那里得到了这个服务器代码表单和这个客户端

因此,运行在PC上的.Net signalR服务器。signalR在控制台应用程序中自托管。该客户端是在iMac中用Swift编写的ios客户端。我正在尝试在Mac中制作代码,以便在PC中查看代码。 我发现的所有示例都是关于从同一服务器调用信号器的,这是没有帮助的。我的服务器url是:我电脑上的信号器是这样的:

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")
        }