both should work.
i've only tried the socket-connection.
my midlet prompts the blackberry-user to register on a servlet, the registration at the PushRegistry is done automaticaly after the servlet registration.
the servlet stores the blackberry's ip and then opens a socket-connection with an output-stream to the blackberry.
this connections invokes the midlets
startApp()-method.
beside the articles and examples on sun's j2me pages, you can look at this page
corej2me - DeveloperResources
the only blackberry specific think to keep on mind is setting the
;deviceside=true for registration at the PushRegsitry.
hopes that helps you
mmkl