6
xuống bỏ phiếu
chấp nhận
Hai công nghệ này có một mục đích rất khác nhau. Văn là cho các cuộc gọi thông thường cho một API, với khách hàng là một diễn viên tích cực của việc trao đổi. Khi khách hàng cần phải tìm tọa độ GPS của một địa chỉ, khách hàng khởi tạo cuộc gọi đến các API và đợi đến khi nhận được tọa độ, hoặc một lỗi xảy ra, hoặc một thời gian chờ trôi qua. ổ cắm Web là dành cho tất cả mọi thứ mà cần phải làm những điều ngược lại cách. Ví dụ, khi tôi sử dụng một trang web mạng nội bộ trong đó cho thấy tôi trong thời gian thực các bản ghi và hiệu suất của máy chủ khác nhau, khách hàng có thể thụ động và chờ đợi cho đến khi máy chủ sẽ gửi cho anh một tin nhắn đăng nhập mới được xuất bản hoặc hiệu suất số liệu. Sự khác biệt là rõ ràng: trong trường hợp đầu tiên, khách hàng quyết định khi nó cần một phần cụ thể của thông tin; trong trường hợp thứ hai, khách hàng chỉ cần chờ đợi để được liên lạc, và có thể không biết khi nào nó sẽ được. Trong một cách nào đó, cả hai đều là hoán đổi cho nhau: bạn có thể thực hiện các ổ cắm web khi bạn không cần đến chúng (tức là khách hàng sẽ gọi máy chủ thông qua ổ cắm web thay vì làm một cuộc gọi REST) và bạn có thể sử dụng phiếu hoặc bỏ phiếu dài như là một thay thế cho ổ cắm web (cho rằng điều này đã được sử dụng thành công trong nhiều năm cho đến khi ổ cắm web đã trở nên phổ biến). Nhưng khả năng hoán đổi của họ đi kèm với chi phí: Khi bạn sử dụng bỏ phiếu hoặc bỏ phiếu dài thay vì ổ cắm web, bạn thường lãng phí băng thông. Khi bạn sử dụng ổ cắm web để làm những gì có thể được thực hiện thông qua ổ cắm web, bạn giữ tất cả các kết nối từ tất cả các khách hàng hoạt động mở ra, trong đó có thể không được những gì bạn thực sự muốn. Đối với một trang web nhỏ, nơi bạn mong đợi để có ít nhất 5 khách hàng cùng một lúc, điều này không phải là một vấn đề. Đối với một dịch vụ như Amazon AWS, điều này sẽ không dễ dàng để giải quyết về mặt kỹ thuật. Không sử dụng ổ cắm web khi bạn không cần đến chúng. Để có được tọa độ GPS của một địa chỉ, tôi nhận được cái gì trong việc mở web ổ cắm kết nối, thực hiện cuộc gọi, chờ đợi một câu trả lời và đóng kết nối: REST của đáp ứng nhu cầu của tôi cho các kịch bản như vậy. Nếu bạn thấy mình liên tục và thường xuyên kiểm tra các thông tin thông qua một cuộc gọi REST để một dịch vụ, điều này có thể là một dấu hiệu tốt mà bạn nên di chuyển đến ổ cắm web. Tương tự như vậy, Stack Overflow làm giảm băng thông sử dụng bằng cách sử dụng ổ cắm web, vì nó giúp mọi người không dành thời gian của họ nhấn F5 trên trang chủ để xem họ có tin nhắn mới. Nếu bạn thấy rằng kết nối bạn ổ cắm mở web, sử dụng chúng để thực hiện một cuộc gọi duy nhất, và sau đó đóng chúng lại, hoặc nếu kết nối của bạn vẫn mở, nhưng các máy chủ được gửi một cái gì đó cho khách hàng chỉ theo yêu cầu của khách hàng, chuyển sang REST. Ngoài ra, ổ cắm web vẫn có một sự hỗ trợ có giới hạn và không phải luôn luôn dễ dàng để thực hiện. Trong khi SignalR làm cho nó dễ dàng để thực hiện, điều này không có nghĩa là bạn sẽ không có bất kỳ khó khăn để thực hiện nó trong các ngôn ngữ khác / bối cảnh / môi trường. Với REST, đó là dễ dàng: nó có thể là một cuộc gọi curl hoặc một tính năng tương tự có sẵn trong mọi ngôn ngữ chính thống. Với ổ cắm web, bạn không thể chắc chắn bao lâu nó sẽ có được để làm cho khách hàng sử dụng [chèn tên của một ngôn ngữ mà bạn không biết nhưng ở đây]. Tôi đã sử dụng ổ cắm web trong một số dự án trong NET, Python và node.js. Trong .NET, nó không phải là quá khó khăn, nhưng vẫn còn, tôi vẫn dành một vài ngày cố gắng tìm ra một số vấn đề khó hiểu, chẳng hạn như kết nối giảm ngay sau khi nó được mở. (Đây là trước khi SignalR, tôi chưa bao giờ thử SignalR). Tôi cũng sử dụng WCF trong chế độ ổ cắm web, đó là không phải không có vấn đề hoặc là (nhưng tôi tin rằng WCF luôn luôn đi kèm với vấn đề). Trong Node.js, điều này là có thể làm được, nhưng tôi đã phải chuyển hai lần các thư viện cho đến khi tôi đã tìm thấy một trong đó hoạt động. Tôi tin rằng tôi đã trải qua ít nhất một tuần cố gắng để làm cho một ổ cắm web Hello World. Trong Python, tôi đã thử một lần, đã dành hai hoặc ba ngày, và bị bỏ rơi. Nó không bao giờ làm việc. So sánh với REST: những vấn đề chỉ có một có thể gặp phải với một ngôn ngữ mới / khuôn khổ là để biết làm thế nào để POST tập tin hoặc nhận được một phản ứng nhị phân rất lớn. Tôi nhớ một vài giờ tìm kiếm các giải pháp cho một số ngôn ngữ. Tuy nhiên, một vài giờ cho một trường hợp đặc biệt là không có gì so với ngày hoặc vài tuần cho một đơn giản Hello World.
đang được dịch, vui lòng đợi..
