TCPClient.swift 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. //socket?.emitWithAck(event, withItems: data)
  35. }
  36. //接收消息
  37. func recived(event:String){
  38. socket?.on(event, callback: { (data, Ack) in
  39. switch (event){
  40. case "zhuxunserver.response":
  41. print(data)
  42. //收到消息后具体处理
  43. case "zhuxunserver.chat.message":
  44. //收到消息后具体处理
  45. print(data)
  46. case "zhuxunserver.users.state":
  47. //收到消息后具体处理
  48. print(data)
  49. case "zhuxunserver.login.locked":
  50. //收到消息后具体处理
  51. print(data)
  52. case "zhuxunserver.chatmessage.sync":
  53. print(data)
  54. default:
  55. print("Unrecognized event")
  56. }
  57. Ack.with(event)
  58. })
  59. }
  60. // switch event {
  61. // case "zhuxunserver.response":
  62. // socket?.on(event, callback: { (data, Ack) in
  63. //
  64. // //Ack("clientRcomplet")
  65. // })
  66. // case "zhuxunserver.chat.message":
  67. // socket?.on(event, callback: { (data, Ack) in
  68. //
  69. // //Ack("clientRcomplet")
  70. // })
  71. // case "zhuxunserver.users.state":
  72. // socket?.on(event, callback: { (data, Ack) in
  73. //
  74. // //Ack("clientRcomplet")
  75. // })
  76. // case "zhuxunserver.login.locked":
  77. // socket?.on(event, callback: { (data, Ack) in
  78. //
  79. // })
  80. // default:
  81. // print("###################################################")
  82. // print("###################################################")
  83. // print("#####socket recived Unrecognize event##############")
  84. // print("###################################################")
  85. // print("###################################################")
  86. // }
  87. }