Mặc dù bỏ phiếu cho dịch vụ web là có thể, bạn có biết phương pháp nào khác để đẩy các thay đổi cho ứng dụng khách di động ngoại trừ việc sử dụng dịch vụ trao đổi thư của máy chủ trao đổi không?Làm cách nào để đẩy dữ liệu đến máy khách .NET CF?
Trả lời
Như Mark Seemann worte: Tôi đã từng thực hiện POC của hệ thống thông báo khách hàng cho .NET CF khi tôi ở trong nhóm Microsoft Dynamics Mobile.
Lúc đó tôi không tìm thấy bất kỳ giải pháp Out-Of-The-Box nào có thể thực hiện việc này và tôi không muốn kết nối với Exchange Server vì người dùng dự định không có tài khoản AD và hầu hết đều không sử dụng máy chủ trao đổi. Vì vậy, tôi đã ở trong tình trạng tương tự như bạn bây giờ. Tôi bắt đầu tìm kiếm các giải pháp khả thi ...
Tôi nhận ra rằng máy chủ không thể kết nối với máy khách vì địa chỉ IP này liên tục thay đổi (chuyển từ 3G sang WiFi, mất kết nối, v.v ...). Phòng khám phải kết nối với máy chủ. Hơn nữa, tôi thấy rằng hầu hết các mạng đều cho phép kết nối HTTP nhưng không phải lúc nào cũng có các kết nối TCP tùy chỉnh trên các cổng tùy chỉnh.
Tôi đã sử dụng "Sao chổi" để thực hiện các yêu cầu http dài từ máy khách (.NET CF) đến máy chủ (IIS) và đẩy thông báo đến máy khách bằng kết nối này. Nếu khách hàng có một thời gian chờ trước khi một thông báo được đưa ra nó sẽ chỉ đơn giản là thực hiện một yêu cầu mới.
Trên máy chủ, tôi đã sử dụng kết hợp của AsyncHttpHandler và chờ chuỗi đã kiểm tra thư cho các khách hàng được kết nối sau mỗi giây. Điều quan trọng là sử dụng AsyncHttpHandler hoặc bạn sẽ chặn máy chủ IIS.
POC hoạt động tốt và được chứng minh là giải pháp đáng tin cậy. Có một số nhược điểm đối với điều này: nếu bạn không cẩn thận, bạn sẽ tiêu hao pin khá nhanh chóng.
Thật không may, chỉ có quá nhiều dòng mã liên quan đến tôi để đăng mã ở đây, nhưng nếu bạn thích bạn được chào đón liên hệ với tôi và tôi sẽ gửi e-mail cho bạn POC của tôi.
+1 Rất vui khi bạn tham gia bữa tiệc :) –
Quay lại khi tôi làm việc trong nhóm Microsoft Dynamics Mobile (cho đến tháng 1 năm 2009), không có cách nào khác được tích hợp sẵn để thực hiện việc này trên .NET CF khác ngoài Exchange Server Mail Transport.
Tuy nhiên, một trong các đồng nghiệp của tôi đã tăng đột biến khi khách hàng di động mở kết nối HTTP tới dịch vụ và giữ nó mở, nhờ đó dịch vụ có kênh mở mà nó có thể đẩy.
AFAIK, đây là cơ bản những gì Exchange Server Mail Transport thực hiện. IIRC, ông đã nhận nó làm việc không sao, nhưng tôi sẽ tweet anh ấy và xem nếu tôi có thể làm cho anh ấy kêu vang trong
Dưới đây là một số tùy chọn để sử dụng trong một mạng nội bộ:.
- MSQM
- TcpListener
Để tùy chọn 1 bạn cần cài đặt một phần cơ sở hạ tầng khác, nhưng bạn có được API và giao thức chuẩn.
Đối với tùy chọn thứ hai, bạn phải triển khai giao thức của riêng mình.
Cả hai tùy chọn chỉ hoạt động trong môi trường đóng!
@downvoter, có gì sai với câu trả lời của tôi? –
Thử kiểm tra WebSync, máy chủ sao chổi cho IIS/.NET. Nó bây giờ có hỗ trợ khung nhỏ gọn đầy đủ.
- 1. Làm cách nào để bạn có thể đẩy dữ liệu đến ứng dụng khách trang web?
- 2. GWT và WebSocket/Đẩy dữ liệu từ máy chủ đến máy khách GWT
- 3. Làm thế nào máy chủ có thể đẩy dữ liệu cho khách hàng?
- 4. Làm cách nào để đẩy dữ liệu từ máy chủ đến tất cả các máy khách không sử dụng Bộ sưu tập?
- 5. Làm thế nào để kiến trúc sư đẩy thông báo đến một máy khách Swing từ JAX-WS trên GlassFish?
- 6. Làm cách nào để truyền mô hình phức tạp từ máy khách đến máy chủ?
- 7. Nén dữ liệu máy khách Javascript
- 8. Các khung để lưu trữ phía máy khách dữ liệu
- 9. COMET (máy chủ đẩy tới máy khách) trên iPhone
- 10. Làm cách nào để giữ máy khách Android được kết nối với máy chủ ngay cả khi thay đổi hoạt động và gửi dữ liệu đến máy chủ?
- 11. Làm cách nào để gửi tin nhắn từ máy chủ đến máy khách bằng SignalR Hubs
- 12. Làm cách nào để giải quyết ngoại lệ .NET CF "Không thể tìm thấy PInvoke DLL"?
- 13. Làm cách nào để chọn một tab trên .NET CF TabControl?
- 14. Có thể thực hiện đẩy HTTP phía máy khách không?
- 15. Lỗi khi thực hiện kết nối SSL từ máy khách Java đến máy chủ .NET
- 16. Máy khách TCP/IP khách quan
- 17. Máy chủ asp.net http đẩy cho khách hàng
- 18. Dữ liệu đẩy từ ứng dụng đường ray cho khách hàng
- 19. Làm cách nào để đẩy $ bằng cách sử dụng MongoRepository trong Dữ liệu Mùa xuân?
- 20. Làm cách nào để tạo dữ liệu JSON giả trên máy khách trong C/iOS mục tiêu?
- 21. Trong C#, làm cách nào tôi có thể biết được thuộc tính tĩnh? (.Net CF 2.0)
- 22. Có cách nào để PUSH dữ liệu từ máy chủ web đến trình duyệt không?
- 23. Gửi dữ liệu nhị phân với máy khách Restlet
- 24. PyQt QTcpServer: Làm cách nào để trả lại dữ liệu cho nhiều khách hàng?
- 25. Máy chủ Sinatra đẩy?
- 26. Làm cách nào để truy cập dữ liệu thông báo đẩy từ xa trên applicationDidBecomeActive?
- 27. jqGrid: dữ liệu POST đến máy chủ để lấy dữ liệu hàng (lọc và tìm kiếm)
- 28. Làm cách nào để chạy mã phía máy khách và máy chủ cho cùng một nút?
- 29. Cách xử lý nhiều thông báo đẩy với dữ liệu người dùng đến vào các thời điểm khác nhau?
- 30. Gửi tệp từ máy khách đến máy chủ bằng XMLRPC?
bạn có nhớ chia sẻ mã nguồn bạn đã đề cập (POC) không? –