Client polling, server push, websockets, and long polling are methods for real-time communication between clients and servers. Client polling involves the client regularly requesting updates from the server. Server push allows the server to proactively send updates to clients. With long polling, the server holds client requests until there is an update to send. Websockets provide full-duplex communication over a single TCP connection. Server push uses server-sent events to stream data from server to client without polling. Websockets enable bidirectional communication while server push only allows server to client. Both have advantages for different use cases depending on the need for bidirectional updates.