Socket.io 延伸


項目正好用到了即時通訊功能,於是研究到了webSocket技術,后來發現了可以在web、[Android]、[iOS]上同時使用的解決方案,那就是SocketIO。其實現原理啥的不做介紹了,直接貼上IOS項目可能會用到的一些資源。

首先是官網:http://socket.io/ 這個大家都不會陌生吧~~

1、官方推薦的Android項目:http://socket.io/blog/native-socket-io-and-android/

github上的相應地址為:https://github.com/nkzawa/socket.io-android-chat

2、官方推薦的IOS--Swift項目:http://socket.io/blog/socket-io-on-ios/

github上的相應地址為:https://github.com/socketio/socket.io-client-swift

另外如果你需要oc版本的,可以參考這里:socket.io v0.7.2 — 0.9.x for iOS and OS X https://github.com/pkyeck/socket.IO-objc

3、官方推薦的C++項目:http://socket.io/blog/socket-io-cpp/

github上的相應地址為:https://github.com/socketio/socket.io-client-cpp

另外還有一個匿名的聊天室可以讓你測試用:http://chat.socket.io/
// 關於配置的那些坑 及 WebSocket開發的原理

由於IOS端官網只有介紹Swift的代碼,如果需要使用到OC版就需要在github下載非官方的版本,在與后台的各種折騰中,終於發現非官方的OC版本配置不兼容后台的需求,重新換了Swift官方版本才行,在OC項目中橋接Swift文件即可。

后台采用workman開源推送機制,將消息即時發送到客戶端,原理和WebViewJavascriptBridge類似,據了解微信也是使用這種機制,只是框架可能有所不同,由於后台是開源服務器,所開發的難度並不大,只是時間成本的問題;

// 在使用key值時,需要與后台進行對應配置,

// 如下是指發送消息 根據“group chat” key值去指向服務器所對應的方法,將數據傳遞過去

socket.on("group chat") { (dataArray, socketAck) -> Void in var messageDictionary = [String: AnyObject]() print("group chat dataArray = %@",dataArray) let messageDict = dataArray[0]; messageDictionary["username"] = messageDict["username"] messageDictionary["message"] = messageDict["message"] print("messageDictionary = %@",messageDictionary) completionHandler(messageInfo: messageDictionary) }

// 如下是監測服務器的通知 根據“disconnect” key值去調用所需要處理的對應方法即可

在配置的使用過程中,采用統一形式的回調Block形式即可,方法非常簡潔,有問題歡迎留言




參考鏈接:
0.http://www.infoq.com/cn/news/2015/01/socket-io-websocket
1.http://www.jianshu.com/p/a7757baf3bad
2.http://www.imooc.com/article/3453
3.http://www.jianshu.com/p/f643d74e6732
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM