6down voteacceptedThose two technologies have a very different purpose dịch - 6down voteacceptedThose two technologies have a very different purpose Việt làm thế nào để nói

6down voteacceptedThose two technol


6
down vote
accepted
Those two technologies have a very different purpose.

REST is for ordinary calls to an API, with client being an active actor of the exchange. When the client needs to find GPS coordinates of an address, the client initiates the call to the API and waits until it receives the coordinates, or a error occurs, or a timeout elapses.

Web sockets are for everything which needs to do things the opposite way. For example, when I use an intranet website which shows me in real time the logs and the performance of different servers, the client may be passive and wait until the server sends him a newly published log message or performance metrics.

The difference is clear: in the first case, the client decides when it needs a specific piece of information; in the second case, the client simply waits to be contacted, and may not know when it would be.

In some way, both are interchangeable: you can implement web sockets when you don't need them (i.e. the client will call the server through web sockets instead of making a REST call) and you can use polling or long polling as a substitute to web sockets (given that this was used successfully for years until web sockets became so popular).

But their interchangeability comes at a cost:

When you use polling or long polling instead of web sockets, you're often wasting bandwidth.

When you use web sockets to do what can be done through web sockets, you keep all the connections from all the active clients opened, which may not be what you really want. For a small website where you expect to have at most 5 clients at the same time, this is not an issue. For a service such as Amazon AWS, this wouldn't be easy to solve technically.

Don't use web sockets when you don't need them. To get GPS coordinates of an address, I gain nothing in opening web sockets connection, making the call, waiting for an answer and closing the connection: REST fulfills my needs for such scenarios.

If you find yourself repeatedly and frequently checking for information through a REST call to a service, this may be a good sign that you should move to web sockets. Similarly, Stack Overflow reduces bandwidth usage by using web sockets, since it helps people to not spend their time pressing F5 on the home page to see if they have new messages.

If you find that you open web sockets connections, use them to make a single call, and then close them, or if your connections remain opened but the server is sending something to the client only on client's request, switch to REST.

Also, web sockets have still a limited support and are not always easy to implement. While SignalR makes it easy to implement, this doesn't mean that you won't have any difficulties to implement it in other languages/contexts/environments. With REST, that's easy: it may be a curl call or a similar feature available in every mainstream language. With web sockets, you can't be sure how long would it take to make a client using [insert the name of a language you don't know yet here].

I've used web sockets in several projects in .NET, Python and node.js.

In .NET, it wasn't too difficult, but still, I've still spent a few days trying to figure out some cryptic problems, such as the connection dropped as soon as it is opened. (This was prior to SignalR; I never tried SignalR). I also used WCF in web sockets mode, which wasn't without issues either (but I believe that WCF always comes with issues).

In node.js, this was doable, but I had to switch twice the libraries until I've found one which works. I believe I've spent at least a week trying to make a web sockets Hello World.

In Python, I tried once, spent two or three days, and abandoned. It never worked.

Compare this to REST: the only problems one can encounter with a new language/framework is to know how to POST files or receive a very large binary response. I remember spending a few hours searching for solutions for some languages. Still, a few hours for a special case is nothing compared to days or weeks for a simple Hello World.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
6xuống bầuchấp nhậnNhững hai công nghệ này có một mục đích rất khác nhau.Còn lại là cho các cuộc gọi bình thường với một API, với khách hàng là một diễn viên hoạt động của sở giao dịch. Khi khách hàng cần tìm tọa độ GPS của một địa chỉ, khách hàng bắt đầu các cuộc gọi đến API và chờ đợi cho đến khi nó nhận được các tọa độ, hoặc một lỗi xảy ra, hoặc một thời gian chờ thường.Ổ cắm web là dành cho tất cả mọi thứ mà cần phải làm việc theo cách đối diện. Ví dụ, khi tôi sử dụng một trang web mạng nội bộ 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ể được thụ động và chờ đợi cho đến khi các máy chủ gửi cho anh ta một vừa được xuất bản đăng nhập tin nhắ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 mảnh 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ó sẽ.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 họ (tức là khách hàng sẽ gọi cho các máy chủ thông qua web ổ cắm thay vì làm cho một phần còn lại gọi) và bạn có thể sử dụng phòng phiếu hoặc lâu bỏ phiếu như là một thay thế để web socket (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ở thành rất phổ biến).Nhưng interchangeability của họ đi kèm với một chi phí:Khi bạn sử dụng bỏ phiếu hoặc lâu bỏ phiếu thay vì web ổ cắm, bạn thường đang lãng phí băng thông.Khi bạn sử dụng web ổ cắm để làm những gì có thể được thực hiện thông qua web ổ cắm, bạn giữ tất cả các kết nối từ tất cả các hoạt động khách hàng mở, có thể không là những gì bạn thực sự muốn. Cho một trang web nhỏ mà bạn hy vọng sẽ có tối đa 5 khách hàng cùng một lúc, điều này không phải là một vấn đề. Cho một dịch vụ như Amazon AWS, điều này sẽ không được 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 các tọa độ GPS của một địa chỉ, tôi đạt được không có gì trong mở web ổ cắm kết nối, thực hiện cuộc gọi, chờ đợi câu trả lời và đóng kết nối: còn lại đáp ứng nhu cầu của tôi cho 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 thông tin thông qua một cuộc gọi phần còn lại đến 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 để web ổ cắm. Tương tự như vậy, ngăn xếp tràn làm giảm băng thông sử dụng bằng cách sử dụng web ổ cắm, vì nó sẽ giúp mọi người không dành thời gian của họ cách nhấn F5 trên trang chủ để xem nếu họ có thư mới.Nếu bạn thấy rằng bạn mở web ổ cắm kết nối, sử dụng chúng để thực hiện cuộc gọi duy nhất, và sau đó đóng chúng, hoặc nếu kết nối của bạn vẫn mở nhưng các máy chủ đang 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 phần còn lại.Ngoài ra, ổ cắm web có vẫn còn một hỗ trợ giới hạn và được 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 ngôn ngữ khác/ngôn ngữ/môi trường. Với phần còn lại, đó 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ự sẵn có ở mọi ngôn ngữ chính. Với web ổ cắm, bạn không thể chắc chắn bao lâu nó sẽ có để làm cho một khách hàng bằng cách sử dụng [chèn tên của một ngôn ngữ bạn không biết nhưng đây].Tôi đã sử dụng web ổ cắm một số dự án tại .NET, Python và node.js.Ở .NET, nó không phải 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 ngắt ngay sau khi nó được mở ra. (Đây là trước khi SignalR; Tôi không bao giờ cố gắng SignalR). Tôi cũng sử dụng WCF trong chế độ web ổ cắm, mà đã không mà không có vấn đề hoặc (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 đã được doable, nhưng tôi đã phải chuyển đổi 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 đã dành ít nhất một tuần cố gắng để làm cho một trang web mối nối Xin chào thế giới.Bằng Python, tôi đã thử một lần, đã trải qua hai hoặc ba ngày, và bị bỏ rơi. Nó không bao giờ làm việc.So sánh điều này với phần còn lại: các vấn đề duy nhất, một trong những 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 để đăng bài tập tin hoặc nhận được một phản ứng rất lớn nhị phân. Tôi nhớ chi tiêu một vài giờ tìm kiếm 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 không có gì so với ngày hoặc vài tuần cho một đơn giản Xin chào thế giới.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!

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..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: