Whether MessageCommunication can transfer file streams (or file objects). If yes, is there a limit on the file size? If not, any other method can used to transfer file?

No, there is no way to transfer file stream by MessageCommunication. On the other hand, if you serialize file object then you can do it.

There will be a limit of 10 MB, take care not to implement something that will risk overloading the Event Server.