With this exercise you will connect two streams: (1) a stream of TaxiRide events and (2) a query stream on which you can type queries. In this case a query is two comma-separated floating point numbers representing a (longitude, latitude) pair. The expected output is a stream of rides ending after the query was received, with each successive ride being closer to the requested location.
On MacOS and Linux you can start the broadcast query stream via
nc -lk 9999
and on Windows you can install ncat from https://nmap.org/ncat/ and then use
ncat -lk 9999
Some good locations:
-74, 41 // Near, but outside the city to the NNW -73.7781, 40.6413 // JFK Airport -73.977664, 40.761484 // The Museum of Modern Art
The intent of this exercise is to support many ongoing queries simultaneously. In a real application it would make sense to think about how to eventually clear all of the state associated with obsolete queries.
Reference solutions are available at GitHub: