Really appreciate the book, I have been writing robust server side swift code backed by your unittest demos.
However when I try to do TDD to implement chat component based on the websockets. I met some trouble:
I have a echo
websocket at ws://127.0.0.1:8080
Here is my testcase:
func testWSSocket() throws {
let worker = MultiThreadedEventLoopGroup(numberOfThreads: 1)
//let ws = try HTTPClient.webSocket(scheme: .ws, hostname: “127.0.0.1”, port: 8080, on: worker).wait()
let ws = try app.client().webSocket(“ws://127.0.0.1:8080”).wait()let promise = worker.eventLoop.newPromise(String.self) ws.onText { ws, text in promise.succeed(result: text) ws.close(code: .normalClosure) } ws.onCloseCode { code in print("code: \(code)") } let message = "Hello, world!" ws.send(message) try XCTAssertEqual(promise.futureResult.wait(), message) try ws.onClose.wait() }
I ran the case, it always throw this error:
▿ NIOConnectionError
- host : “127.0.0.1”
- port : 8080
- dnsAError : nil
- dnsAAAAError : nil
▿ connectionErrors : 1 element
▿ 0 : SingleConnectionFailure
▿ target : [IPv4]127.0.0.1/127.0.0.1:8080
▿ v4 : IPv4Address
▿ _storage : <Box<(address: sockaddr_in, host: String)>: 0x100c45470>
▿ error : connection reset (error set): Connection refused (errno: 61)
- errnoCode : 61
▿ reason : FailureDescription
- reason : "connection reset (error set)
But I tried with the wsta command, it connects and works fine.
Can you provide a unittest demo for this chapter?
Thank you