The last 3 days I worked on wifi connexion and implements a wifi shell. The usb shell allows you to communicate directly with the wifi device (which knows a lot of commands) or you can use other commands we implemented. Thus the wifi device can be configured entirely with usb.
When you boot, the wifi device start a tcp server and use mdns for you to reach easily the tcp server. I put the wifi device in stream mode as default mode. Stream mode is perfect for a shell but not pratical if you want communicate with the wifi device. It is possible to break out the stream mode but it takes at least 3 seconds : the usb break out the stream mode when it starts, but the wifi shell should not do such a thing (it will takes you about 3 to 5s for each request you want to do to the wifi device) . That means you can not use the two shell (usb and wifi) at the same time. Thinking that we don’t need to use both at the same time, I decided to put the choice of shell before compilation (you need to define one macro to use wifi shell instead of usb).
However, this stream mode also prevents you from making a simple http request. It is possible not to use the stream mode but it won’t change the fact that the wifi shell interpretes each line it receives as a command. So to make http request with wifi shell, we can not use the same command that the usb shell, which is very not pratical. Maybe we will have one more way to communicate with the wifi device (a spi is coming).