TCPClient.swift 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. //
  2. // TCPClient.swift
  3. // SocketChat
  4. //
  5. // Created by Justine on 16/5/27.
  6. // Copyright © 2016年 AppCoda. All rights reserved.
  7. //
  8. import Foundation
  9. import CocoaAsyncSocket
  10. import SocketIOClientSwift
  11. protocol SocketIODelegate {
  12. // didsend()
  13. // didrecived()
  14. }
  15. class TCPClient{
  16. static let shareInstance = TCPClient()
  17. var counter = 0
  18. var socket:SocketIOClient?
  19. func connect(urlstr:String){
  20. socket = SocketIOClient.init(socketURL: NSURL(string: urlstr)!)
  21. socket?.connect()
  22. //socket = SocketIOClient.ini
  23. print(socket?.status)
  24. }
  25. func disconnect(){
  26. socket?.disconnect()
  27. }
  28. func reconnect(){
  29. socket?.reconnect()
  30. }
  31. //发送消息
  32. func send(event:String,data:AnyObject){
  33. socket?.emit(event, data)
  34. }
  35. //接收消息
  36. func recived(event:String){
  37. socket?.on(event, callback: { (data, Ack) in
  38. switch (event){
  39. case "zhuxunserver.response":
  40. print(data)
  41. //收到消息后具体处理
  42. case "zhuxunserver.chat.message":
  43. //收到消息后具体处理
  44. print(data)
  45. case "zhuxunserver.users.state":
  46. //收到消息后具体处理
  47. print(data)
  48. case "zhuxunserver.login.locked":
  49. //收到消息后具体处理
  50. print(data)
  51. case "zhuxunserver.chatmessage.sync":
  52. print(data)
  53. default:
  54. print("Unrecognized event")
  55. }
  56. Ack.with(event)
  57. })
  58. }
  59. // switch event {
  60. // case "zhuxunserver.response":
  61. // socket?.on(event, callback: { (data, Ack) in
  62. //
  63. // //Ack("clientRcomplet")
  64. // })
  65. // case "zhuxunserver.chat.message":
  66. // socket?.on(event, callback: { (data, Ack) in
  67. //
  68. // //Ack("clientRcomplet")
  69. // })
  70. // case "zhuxunserver.users.state":
  71. // socket?.on(event, callback: { (data, Ack) in
  72. //
  73. // //Ack("clientRcomplet")
  74. // })
  75. // case "zhuxunserver.login.locked":
  76. // socket?.on(event, callback: { (data, Ack) in
  77. //
  78. // })
  79. // default:
  80. // print("###################################################")
  81. // print("###################################################")
  82. // print("#####socket recived Unrecognize event##############")
  83. // print("###################################################")
  84. // print("###################################################")
  85. // }
  86. }