使用Swift将iOS应用连接到sockJs服务器

阿舒托什

我正在使用iOS应用程序,并且必须将我的应用程序连接到sockJS服务器才能获取实时供稿。是否有适用于iOS的sockJS客户端。提前致谢。

维沙尔·拉杰(Vishal raj)

使用以下命令成功连接到SockJS :)

  1. 放置一个UIWebView并将其可见性设置为隐藏。
  2. 在Webview中使用SockJS客户端。
  3. 使用UIWebViewDelegate。
  4. 我们只需要从本机swift代码中调用JS函数一次。

ViewController:

func initWebView(){
    webView = UIWebView()
    webView.frame = CGRectMake(0, self.view.frame.height-120, self.view.frame.width, 58)
    if let url = NSBundle.mainBundle().URLForResource("template", withExtension: "html", subdirectory: "web") {
        let requestURL = NSURLRequest(URL: url)
        //print("request\(requestURL)")
        webView!.delegate = self
        webView!.loadRequest(requestURL)
    }
}

func webViewDidFinishLoad(webView: UIWebView) {
    print("WebView Loaded")
    if self.webViewLoaded == false {
        webView.stringByEvaluatingJavaScriptFromString("connectToSocket('\(self.serverUrl)','\(self.accessKey)')");
        //print("Sock return: \(htmlTitle)")
    }
    self.webViewLoaded = true
}

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {

    if request.URL!.scheme == "sockjs" {
        dispatch_async(dispatch_get_main_queue(), {
            let urlComponents = NSURLComponents(string: (request.URL?.absoluteString)!)
            let queryItems = urlComponents?.queryItems
            let param1 = queryItems?.filter({$0.name == "msg"}).first
            let temp = String(param1!.value!)
            if let data = temp.dataUsingEncoding(NSUTF8StringEncoding) {
                let json = JSON(data: data)
                //print("Live Data: \(json)")
                self.updateMarkerInfo(json)
            }
        })
        return false
    }

    return true
}

template.html:

将sockjs代码复制到template.html中,然后添加以下内容。

<script type="text/javascript">
var sock;
    function connectToSocket(url, accessKey){
        //alert("connectTosocket called!");
        this.sock = new SockJS(url);

        sock.onopen = function() {
            //alert("open");
            sock.send(JSON.stringify({
                key: accessKey
            }));
        };

        sock.onclose = function() {
            sock.close();
            alert("close");
        };

        sock.onmessage = function(e) {
            result = e.data.replace(/,\s*$/, '');
            window.location = 'sockjs://data?msg='+ result
            //alert(result);
        };

        sock.onerror = function(e) {
            alert("error" + e);
        };
    }

    function closeConnection () {
       try {
          this.sock.close();
          }catch(err) {

         }
       }

     function sendMessage(message){
        sock.send(message);
     }


</script>

不要忘记在info.plist中添加以下内容

<key>NSAppTransportSecurity</key>
    <dict>
         <key>NSAllowsArbitraryLoads</key>
         <true/>
    </dict>

https://github.com/vishal-raj/SockJSiOSClient

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将android应用程序连接到sockjs服务器

来自分类Dev

iOS应用无法连接到MobileFirst服务器

来自分类Dev

如何将 swift 应用程序连接到套接字 io 服务器

来自分类Dev

使用 alamofire 通过 iOS 应用程序连接到 Windows SSL 服务器

来自分类Dev

如何使用LDAP服务器将vb.Net应用程序连接到Oracle?

来自分类Dev

iOS WebSocket无法使用SocketRocket连接到服务器

来自分类Dev

使用haskell连接到服务器

来自分类Dev

如何使用php将opencart应用程序连接到ms sql服务器数据库?

来自分类Dev

如何使用API将Flutter应用程序连接到本地sql服务器数据库?

来自分类Dev

如何将.sql文件连接到MySQL Server以与应用程序服务器一起使用

来自分类Dev

使用 Wamp 将 SQL 服务器数据库连接到 PHP Web 应用程序

来自分类Dev

如何从iOS应用连接到后端服务器?如何读取,修改和获取数据到后端服务器?

来自分类Dev

mobilefirst ios混合应用程序无法连接到生产服务器

来自分类Dev

iOS本机无法连接到MFP服务器:需要使用安全连接

来自分类Dev

将MySQL连接到Java客户端/服务器应用程序

来自分类Dev

将应用程序发布到远程服务器时,无法连接到SQL

来自分类Dev

流星android应用程序将无法连接到服务器

来自分类Dev

将 Android 应用程序连接到 Heroku 上的 Django Web 服务器的 Postgresql

来自分类Dev

使用“连接到服务器”实用程序从debian连接到服务器

来自分类Dev

iOS连接到PHP Web服务器将数据插入到MySQL

来自分类Dev

将ZeroMQ从浏览器连接到服务器

来自分类Dev

Android应用无法连接到服务器

来自分类Dev

将用户连接到telnet服务器的Rails应用

来自分类Dev

应用程序无法连接到简单的服务器

来自分类Dev

如何从Flask应用程序使用SSL连接到mysql服务器

来自分类Dev

对于移动应用程序,哪个更好,使用域名连接到服务器或IP地址?

来自分类Dev

使用C#控制台应用程序连接到TFS服务器

来自分类Dev

使用 sudo 运行应用程序时无法连接到 X 服务器

来自分类Dev

Swift:不同的版本连接到不同的服务器

Related 相关文章

  1. 1

    将android应用程序连接到sockjs服务器

  2. 2

    iOS应用无法连接到MobileFirst服务器

  3. 3

    如何将 swift 应用程序连接到套接字 io 服务器

  4. 4

    使用 alamofire 通过 iOS 应用程序连接到 Windows SSL 服务器

  5. 5

    如何使用LDAP服务器将vb.Net应用程序连接到Oracle?

  6. 6

    iOS WebSocket无法使用SocketRocket连接到服务器

  7. 7

    使用haskell连接到服务器

  8. 8

    如何使用php将opencart应用程序连接到ms sql服务器数据库?

  9. 9

    如何使用API将Flutter应用程序连接到本地sql服务器数据库?

  10. 10

    如何将.sql文件连接到MySQL Server以与应用程序服务器一起使用

  11. 11

    使用 Wamp 将 SQL 服务器数据库连接到 PHP Web 应用程序

  12. 12

    如何从iOS应用连接到后端服务器?如何读取,修改和获取数据到后端服务器?

  13. 13

    mobilefirst ios混合应用程序无法连接到生产服务器

  14. 14

    iOS本机无法连接到MFP服务器:需要使用安全连接

  15. 15

    将MySQL连接到Java客户端/服务器应用程序

  16. 16

    将应用程序发布到远程服务器时,无法连接到SQL

  17. 17

    流星android应用程序将无法连接到服务器

  18. 18

    将 Android 应用程序连接到 Heroku 上的 Django Web 服务器的 Postgresql

  19. 19

    使用“连接到服务器”实用程序从debian连接到服务器

  20. 20

    iOS连接到PHP Web服务器将数据插入到MySQL

  21. 21

    将ZeroMQ从浏览器连接到服务器

  22. 22

    Android应用无法连接到服务器

  23. 23

    将用户连接到telnet服务器的Rails应用

  24. 24

    应用程序无法连接到简单的服务器

  25. 25

    如何从Flask应用程序使用SSL连接到mysql服务器

  26. 26

    对于移动应用程序,哪个更好,使用域名连接到服务器或IP地址?

  27. 27

    使用C#控制台应用程序连接到TFS服务器

  28. 28

    使用 sudo 运行应用程序时无法连接到 X 服务器

  29. 29

    Swift:不同的版本连接到不同的服务器

热门标签

归档