1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // Server.swift
- // Starscream
- //
- // Created by Dalton Cherry on 4/2/19.
- // Copyright © 2019 Vluxe. All rights reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- //
- //////////////////////////////////////////////////////////////////////////////////////////////////
- import Foundation
- public enum ConnectionEvent {
- case connected([String: String])
- case disconnected(String, UInt16)
- case text(String)
- case binary(Data)
- case pong(Data?)
- case ping(Data?)
- case error(Error)
- }
- public protocol Connection {
- func write(data: Data, opcode: FrameOpCode)
- }
- public protocol ConnectionDelegate: AnyObject {
- func didReceive(event: ServerEvent)
- }
- public enum ServerEvent {
- case connected(Connection, [String: String])
- case disconnected(Connection, String, UInt16)
- case text(Connection, String)
- case binary(Connection, Data)
- case pong(Connection, Data?)
- case ping(Connection, Data?)
- }
- public protocol Server {
- func start(address: String, port: UInt16) -> Error?
- }
|