2008-12-19 6 views
9

Tôi có nền tảng di động mà tôi đang cố viết một số mã truyền thông.Cách viết Giao diện Tùy chỉnh dựa trên socket cho WCF

Nền tảng cung cấp cơ chế giao tiếp độc quyền dựa trên các chức năng ổ cắm tiêu chuẩn. Về cơ bản, API socket của nền tảng trông giống hệt như API Socket Windows tiêu chuẩn, ngoại trừ với một tiền tố trên mỗi hàm.

Tôi muốn sử dụng WCF để tóm tắt sự phức tạp của API ổ cắm khỏi các ứng dụng tiêu thụ của tôi, nhưng có một thời gian khó tìm tài nguyên mô tả đầy đủ các phần cần được mã hóa.

Bất kỳ ai cũng có thể giới thiệu một địa điểm bắt đầu tốt hay cung cấp mô tả về những gì cần thiết để viết Giao thông vận tải dựa trên Socket tùy chỉnh cho WCF? Lý tưởng nhất, tôi muốn có thể sử dụng HttpBinding trên cơ chế vận chuyển này.

Cảm ơn!

Trả lời

10

Tôi đặt cùng một danh sách một số resources để viết một kênh vận chuyển WCF có thể hữu ích. Không phải tất cả các liên kết vẫn hoạt động, thật không may, nhưng hầu hết là và có một số công cụ hữu ích trong đó.

Tôi cũng đặt short introduction vào cách một số phần khớp với nhau có thể giúp ích một chút.

Điều tôi không nhận được trong câu hỏi của bạn: Bạn đề cập đến rằng bạn muốn chạy HttpBinding trên đầu trang của vận tải của bạn. Bạn có nghĩa là bạn muốn sử dụng kênh vận chuyển http WCF trên đầu API tùy chỉnh giống như socket của bạn thay vì API ổ cắm cửa sổ thông thường?

Nếu có, thì không, điều đó sẽ không hoạt động vì nhiều lý do khác nhau. Một trong số đó là các ràng buộc và các kênh không thực sự gắn trực tiếp với nhau, thay vào đó định nghĩa liên kết (nghĩa là các phần tử ràng buộc được bao gồm trong nó) điều khiển cách ngăn xếp kênh được tạo ra trong thời gian chạy cho dịch vụ/khách hàng của bạn. Vì vậy, về cơ bản, khi viết kênh truyền tải tùy chỉnh, bạn sẽ tạo lớp có nguồn gốc TransportBindingElement tùy chỉnh của riêng mình mà bạn có thể sử dụng trong liên kết tùy chỉnh để sử dụng kênh truyền tải của riêng mình thay vì một trong những kênh mặc định (như HttpTransport). Tuy nhiên, lưu ý rằng kênh truyền tải là, dù sao, dưới cùng của ngăn xếp kênh (nghĩa là không có gì bên dưới nó), vì vậy bạn không thể xếp lớp HttpTransport lên trên vận tải tùy chỉnh của bạn (ngay cả khi giới hạn API không có) .

Nói cách khác, nếu bạn muốn nói HTTP, bạn cần phải nướng nội dung HTTP vào triển khai kênh tùy chỉnh của mình. Tuy nhiên, không có gì ngăn bạn sử dụng phần còn lại của các ràng buộc http/ws http mặc định trên đầu kênh của riêng bạn, miễn là bạn phơi bày các hình dạng kênh phù hợp.

+0

bài đăng và liên kết rất đẹp! –

+1

liên kết ở trên không hoạt động. – vikky