How to pass non-static class member to callback?
Yes, a callback can be a member function. The error in your std::bind call is that while you do bind the first hidden this paramater to an object instance, in this case this object, you must also use placeholders for all your other function parameters. 

Since you declared

void incomingEventHandler(WStype_t type, uint8_t *payload, size_t length)


You must bind as

webSocket.onEvent(std::bind(&amp;MyClass::incomingEventHandler, this,  std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));


Note that this webSocket.onEvent call only works if you are on a non-AVR platform, because the library defines 

void WebSocketsClient::onEvent(WebSocketClientEvent cbEvent) {
    _cbEvent = cbEvent;
}


with

#ifdef __AVR__
        typedef void (*WebSocketClientEvent)(WStype_t type, uint8_t * payload, size_t length);
#else
        typedef std::function&lt;void (WStype_t type, uint8_t * payload, size_t length)&gt; WebSocketClientEvent;
#endif


i.e., it is a raw function pointer in __AVR__ but a std::function on non-AVR platforms -- std::bind will give you a std::function. Since you're on an ESP8266, this should work fine.

Refer to https://en.cppreference.com/w/cpp/utility/functional/bind (and maybe my old question)