Câu hỏi: PRN222 - Chương 7: SignalR và giao tiếp thời gian thực
27 câu trắc nghiệm kèm lời giải của môn Advanced Cross-Platform Application Programming With .NET - Lập trình ứng dụng đa nền tảng nâng cao với .NET, xếp theo thứ tự nhập vào ngân hàng.
Danh sách câu hỏi
20/27 câuCòn 7
1What is a potential disadvantage of Blazor WebAssembly compared to Blazor Server?4 lựa chọnTrung bình67% trả lời đúng
AHigher server load.
BInitial download size and performance.
CLimited browser compatibility.
DLack of SignalR support.
Lời giải
Mở trang câu hỏi này →Blazor WebAssembly là một công nghệ cho phép chạy ứng dụng Blazor trên máy khách, nhưng điều này cũng có thể gây ra một số bất lợi. Một trong những nhược điểm chính của Blazor WebAssembly so với Blazor Server là kích thước tải xuống ban đầu và hiệu suất. Khi bạn chạy ứng dụng Blazor WebAssembly, toàn bộ mã nguồn và dữ liệu sẽ được tải xuống máy khách, điều này có thể gây ra sự chậm chạp và khó khăn trong việc tải xuống ban đầu. Ngoài ra, kích thước tải xuống ban đầu lớn cũng có thể gây ra vấn đề về hiệu suất, đặc biệt là trên các thiết bị có cấu hình thấp. Điều này có thể ảnh hưởng đến trải nghiệm người dùng và làm giảm hiệu suất của ứng dụng.
2What is the main class used for communication in SignalR?4 lựa chọnTrung bình67% trả lời đúng
A
HubB
ControllerC
PageModelD
ServiceLời giải
Mở trang câu hỏi này →Trong SignalR, lớp chính được sử dụng cho giao tiếp là Hub. Hub là một lớp trung gian giúp các client kết nối với nhau và thực hiện các hành động như gửi tin nhắn, cập nhật trạng thái. Nó giống như một trung tâm điều khiển, nơi mà các client có thể gửi và nhận thông tin. Khi một client gửi tin nhắn qua Hub, nó sẽ được gửi đến tất cả các client khác đang kết nối với Hub đó. Điều này giúp tạo ra một môi trường giao tiếp thực-time giữa các client.
3What is the purpose of the Context object in a SignalR hub?4 lựa chọnDễ100% trả lời đúng
ATo manage database connections.
BTo provide information about the current connection.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Mục đích của đối tượng Context trong một Hub SignalR là cung cấp thông tin về kết nối hiện tại của khách hàng. Đối tượng Context chứa các thuộc tính và phương thức giúp bạn có thể truy cập và quản lý thông tin về kết nối, chẳng hạn như ID kết nối, địa chỉ IP, v.v. Điều này cho phép bạn có thể thực hiện các hành động tùy chỉnh dựa trên thông tin về kết nối, chẳng hạn như lưu trữ thông tin về khách hàng, kiểm tra quyền truy cập, v.v. Ngoài ra, đối tượng Context cũng cung cấp phương thức để bạn có thể gửi thông điệp đến khách hàng dựa trên ID kết nối.
4How do you use hubs in SignalR for ASP.NET Core?4 lựa chọnDễ100% trả lời đúng
ABy defining JavaScript functions.
BBy creating classes that inherit from Hub.
CBy using static HTML files.
DBy using database queries.
Lời giải
Mở trang câu hỏi này →Để sử dụng các hub trong SignalR cho ASP.NET Core, bạn cần tạo các lớp (class) mới mà kế thừa từ lớp Hub. Các lớp này sẽ chứa các phương thức (method) được gọi khi có kết nối đến từ các ứng dụng khách (client). Các phương thức này có thể gửi tin nhắn đến các ứng dụng khách đã kết nối. Ví dụ, bạn có thể tạo một lớp Hub có tên là 'ChatHub' và chứa phương thức 'SendMesssage' để gửi tin nhắn đến các ứng dụng khách đã kết nối. Khi một ứng dụng khách gửi tin nhắn đến server, server sẽ gọi phương thức 'SendMesssage' để gửi tin nhắn đến các ứng dụng khách khác. Điều này cho phép các ứng dụng khách tương tác với nhau trong thời gian thực.
5How do you handle events for a SignalR connection on the client-side?4 lựa chọnDễ100% trả lời đúng
ABy writing CSS styles.
BBy using JavaScript event listeners on the connection object.
CBy using static HTML files.
DBy using database queries.
Lời giải
Mở trang câu hỏi này →Để xử lý sự kiện cho một kết nối SignalR trên phía client, bạn cần sử dụng JavaScript. Bạn có thể sử dụng phương thức on() để đăng ký một sự kiện và phương thức off() để hủy đăng ký. Ví dụ, bạn có thể sử dụng phương thức on('connected', function() { ... }) để đăng ký một sự kiện khi kết nối được thiết lập thành công. Ngoài ra, bạn cũng có thể sử dụng phương thức on('reconnected', function() { ... }) để đăng ký một sự kiện khi kết nối được phục hồi sau khi bị mất kết nối. Điều này cho phép bạn thực hiện các hành động cụ thể khi kết nối thay đổi trạng thái.
6What is the purpose of the User feature in SignalR?4 lựa chọnDễ100% trả lời đúng
ATo manage database connections.
BTo send messages to clients based on their authenticated user identity.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Tính năng User trong SignalR được sử dụng để quản lý và gửi tin nhắn đến các khách hàng dựa trên danh tính người dùng đã xác thực. Điều này cho phép các ứng dụng thực hiện các hành động dựa trên danh tính người dùng, chẳng hạn như gửi thông báo hoặc cập nhật trạng thái. Tính năng này cũng giúp các nhà phát triển xây dựng các ứng dụng có tính bảo mật cao hơn, bằng cách đảm bảo rằng các tin nhắn được gửi đến đúng người dùng. Ngoài ra, tính năng User cũng giúp các nhà phát triển quản lý và phân loại các khách hàng dựa trên danh tính người dùng, giúp họ dễ dàng quản lý và theo dõi các hoạt động của khách hàng.
7Which namespace must be imported to use Hub?4 lựa chọnDễ83% trả lời đúng
A
Microsoft.Extensions.DependencyInjectionB
Microsoft.AspNetCore.SignalRC
System.Threading.TasksD
Microsoft.AspNetCore.MvcLời giải
Mở trang câu hỏi này →Để sử dụng Hub, bạn cần import namespace là Microsoft.AspNetCore.SignalR. Đây là namespace được sử dụng để tạo và quản lý các Hub trong ứng dụng ASP.NET Core. Hub là một tính năng quan trọng trong SignalR, cho phép bạn tạo các ứng dụng thực-time và tương tác với người dùng. Khi bạn import namespace này, bạn có thể sử dụng các lớp và phương thức của SignalR để tạo và quản lý các Hub.
8Which method registers SignalR services in Startup?4 lựa chọnDễ83% trả lời đúng
A
services.AddHub()B
services.AddSignalR()C
app.UseSignalR()D
services.RegisterSignalR()Lời giải
Mở trang câu hỏi này →Để đăng ký dịch vụ SignalR trong ứng dụng ASP.NET Core, bạn cần sử dụng phương thức services.AddSignalR(). Phương thức này được sử dụng trong lớp Startup.cs để thêm dịch vụ SignalR vào bộ dịch vụ. Điều này cho phép ứng dụng sử dụng các tính năng của SignalR, chẳng hạn như tạo và kết nối đến các hub. Các phương thức khác như services.AddHub(), app.UseSignalR() và services.RegisterSignalR() không được sử dụng để đăng ký dịch vụ SignalR. services.AddHub() thường được sử dụng để tạo các hub, trong khi app.UseSignalR() được sử dụng để cấu hình SignalR trong ứng dụng. services.RegisterSignalR() không phải là một phương thức hợp lệ trong ASP.NET Core. Vì vậy, phương thức chính xác để đăng ký dịch vụ SignalR là services.AddSignalR().
9In Razor Pages, client-side validation is enabled by:4 lựa chọnTrung bình67% trả lời đúng
AASP.NET pipeline
BjQuery Unobtrusive Validation
CSignalR
DAJAX by default
Lời giải
Mở trang câu hỏi này →Trong Razor Pages, xác thực ở phía khách hàng được kích hoạt bằng cách sử dụng jQuery Unobtrusive Validation. Điều này cho phép thực hiện xác thực trên trình duyệt mà không cần phải gửi yêu cầu đến máy chủ. Để sử dụng tính năng này, bạn cần thêm thư viện jQuery Unobtrusive Validation vào dự án của mình. Sau đó, bạn có thể sử dụng các thuộc tính dữ liệu (data attributes) để chỉ định các quy tắc xác thực cho các trường nhập liệu. Khi người dùng nhập dữ liệu vào các trường này, trình duyệt sẽ tự động thực hiện xác thực và hiển thị thông báo lỗi nếu dữ liệu không hợp lệ. Điều này giúp cải thiện trải nghiệm người dùng và giảm tải cho máy chủ.
10What is the typical use case for a Worker Service?4 lựa chọnDễ100% trả lời đúng
AHandling real-time user interactions.
BPerforming scheduled tasks or background processing.
CRendering web pages.
DManaging user authentication.
Lời giải
Mở trang câu hỏi này →Một Worker Service là một loại ứng dụng trong hệ thống phân tán, được thiết kế để thực hiện các tác vụ nền hoặc xử lý dữ liệu trong nền. Nó thường được sử dụng để thực hiện các nhiệm vụ lặp đi lặp lại, như gửi email hàng ngày, cập nhật dữ liệu trên cơ sở dữ liệu, hoặc thực hiện các tác vụ khác mà không cần tương tác trực tiếp với người dùng. Trong trường hợp này, câu trả lời đúng là "Thực hiện các tác vụ lặp đi lặp lại hoặc xử lý dữ liệu trong nền".
11What is the role of the IHubContext interface?4 lựa chọnDễ100% trả lời đúng
ATo manage database connections.
BTo allow sending messages from outside a hub class.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →IHubContext là một giao diện quan trọng trong ASP.NET Core SignalR, cho phép bạn gửi tin nhắn từ bên ngoài một lớp trung tâm (hub class). Điều này cho phép bạn tương tác với các phương thức trong lớp trung tâm từ các lớp khác, giúp tăng tính linh hoạt và khả năng mở rộng của ứng dụng. Khi sử dụng IHubContext, bạn có thể gửi tin nhắn đến các khách hàng (clients) đã kết nối với lớp trung tâm, giúp cập nhật trạng thái hoặc thực hiện các hành động khác. Điều này đặc biệt hữu ích khi bạn cần tương tác với lớp trung tâm từ các lớp khác trong ứng dụng.
12What are SignalR connections?4 lựa chọnDễ100% trả lời đúng
ADatabase connections.
BPersistent, bidirectional communication channels between a client and server.
CFile system connections.
DUser session connections.
Lời giải
Mở trang câu hỏi này →SignalR là một thư viện cho phép thiết lập các kênh giao tiếp hai chiều giữa máy chủ và khách hàng. Các kênh này cho phép máy chủ gửi thông tin đến khách hàng mà không cần khách hàng yêu cầu. Điều này cho phép các ứng dụng thực hiện các tác vụ như gửi thông báo thời gian thực, cập nhật trạng thái thời gian thực và thực hiện các tác vụ khác mà không cần phải yêu cầu khách hàng.
13Why is MessagePack often preferred over JSON in SignalR?4 lựa chọnDễ100% trả lời đúng
AEasier to read
BProduces smaller, faster messages
CRequires no serialization
DUses XML format
Lời giải
Mở trang câu hỏi này →MessagePack thường được ưa chuộng hơn JSON trong SignalR vì nó có thể tạo ra các tin nhắn nhỏ hơn và nhanh hơn. Điều này là do MessagePack sử dụng một định dạng dữ liệu khác biệt so với JSON, cho phép nó nén dữ liệu một cách hiệu quả hơn. Kết quả là, các tin nhắn được gửi qua mạng sẽ nhỏ hơn và có thể được xử lý nhanh hơn. Điều này đặc biệt quan trọng trong các ứng dụng thời gian thực như SignalR, nơi tốc độ và hiệu suất là rất quan trọng. Ngoài ra, MessagePack cũng có thể hỗ trợ các loại dữ liệu phức tạp hơn so với JSON, làm cho nó trở thành lựa chọn tốt hơn cho các ứng dụng cần xử lý dữ liệu lớn.
14What are SignalR hubs used for?4 lựa chọnDễ100% trả lời đúng
AManaging database connections.
BCommunicating between clients and servers.
CEncrypting data.
DManaging user sessions.
Lời giải
Mở trang câu hỏi này →SignalR Hubs là một công cụ quan trọng trong việc xây dựng các ứng dụng thời gian thực (real-time application) bằng cách cung cấp một cách để các máy khách (client) và máy chủ (server) giao tiếp với nhau. Nó cho phép các máy khách kết nối đến máy chủ và nhận thông tin cập nhật ngay lập tức, đồng thời cũng cho phép các máy chủ gửi thông tin đến các máy khách. Điều này rất hữu ích trong các ứng dụng như trò chơi trực tuyến, ứng dụng thời gian thực, và các ứng dụng cần cập nhật dữ liệu ngay lập tức.
15What are Hub filters in SignalR?4 lựa chọnDễ100% trả lời đúng
ADatabase query filters.
BMiddleware components that can intercept and modify hub method invocations.
CCSS style filters.
DJavaScript event filters.
Lời giải
Mở trang câu hỏi này →Trong SignalR, Hub filters là các thành phần trung gian có thể chặn và sửa đổi các phương thức hub. Chúng cho phép bạn thực hiện các hành động trước và sau khi gọi phương thức hub, chẳng hạn như xác thực người dùng, kiểm tra quyền truy cập, hoặc thậm chí là thay đổi dữ liệu được gửi qua mạng. Hub filters hoạt động như các lớp trung gian giữa các phương thức hub và các phương thức thực thi, cho phép bạn tách biệt logic kinh doanh khỏi logic mạng. Điều này giúp bạn dễ dàng quản lý và bảo trì các ứng dụng SignalR phức tạp hơn.
16What is the purpose of the Clients object in a SignalR hub?4 lựa chọnDễ100% trả lời đúng
ATo manage database connections.
BTo send messages to connected clients.
CTo encrypt data.
DTo manage user sessions.
Lời giải
Mở trang câu hỏi này →Mục đích của đối tượng Clients trong một hub SignalR là để quản lý các kết nối với các khách hàng đã kết nối. Đối tượng này cho phép bạn gửi tin nhắn đến các khách hàng cụ thể hoặc tất cả khách hàng đã kết nối. Điều này giúp bạn có thể tương tác với các khách hàng một cách linh hoạt và hiệu quả. Ví dụ, bạn có thể sử dụng đối tượng Clients để gửi thông báo đến tất cả khách hàng khi có một sự kiện xảy ra. Ngoài ra, bạn cũng có thể sử dụng nó để gửi tin nhắn riêng tư đến một khách hàng cụ thể. Tóm lại, đối tượng Clients là một công cụ quan trọng trong SignalR giúp bạn quản lý và tương tác với các khách hàng một cách hiệu quả.
17Which method is used to add a client to a SignalR group?4 lựa chọnDễ100% trả lời đúng
A
addToGroup()B
groupAdd()C
Groups.AddToGroupAsync()D
addClientToGroup()Lời giải
Mở trang câu hỏi này →Để thêm một khách hàng vào một nhóm SignalR, bạn cần sử dụng phương thức Groups.AddToGroupAsync(). Phương thức này cho phép bạn thêm một khách hàng vào một nhóm đã tồn tại. Bạn có thể sử dụng nó trong một ứng dụng SignalR để quản lý các nhóm và khách hàng. Ví dụ, bạn có thể sử dụng nó để thêm một khách hàng vào một nhóm khi họ đăng ký hoặc khi họ thực hiện một hành động cụ thể. Phương thức này rất hữu ích khi bạn cần quản lý các nhóm và khách hàng trong ứng dụng của mình.
18Which hosting models does Blazor support?4 lựa chọnDễ100% trả lời đúng
AAMVC and MVVM
BBlazor Server and Blazor WebAssembly
CREST and SOAP
DSignalR and gRPC
Lời giải
Mở trang câu hỏi này →Blazor hỗ trợ hai mô hình hosting chính là Blazor Server và Blazor WebAssembly. Blazor Server là mô hình hosting chạy ứng dụng Blazor trên máy chủ, giúp giảm tải công việc xử lý trên máy khách. Trong khi đó, Blazor WebAssembly là mô hình hosting chạy ứng dụng Blazor trên máy khách, giúp tăng tốc độ tải trang và cải thiện trải nghiệm người dùng. Cả hai mô hình hosting đều có ưu và nhược điểm riêng, nhưng đều hỗ trợ xây dựng ứng dụng web động và tương tác cao.
19In the context of real-time web applications, what does "real-time" primarily mean?4 lựa chọnDễ100% trả lời đúng
AData is updated once a day.
BImmediate response from server to client.
CClient periodically requests updates.
DData is processed only after user refreshes the page.
Lời giải
Mở trang câu hỏi này →Trong bối cảnh ứng dụng web thời gian thực, "thời gian thực" chủ yếu có nghĩa là gì? Đây là một khái niệm quan trọng trong việc xây dựng các ứng dụng web thời gian thực. Nói một cách đơn giản, "thời gian thực" có nghĩa là dữ liệu được cập nhật ngay lập tức và phản hồi từ máy chủ đến khách hàng cũng phải ngay lập tức. Điều này cho phép người dùng nhận được thông tin mới nhất và cập nhật ngay lập tức, mà không cần phải chờ đợi. Ví dụ, khi bạn gửi một tin nhắn trên ứng dụng thời gian thực, bạn sẽ nhận được phản hồi ngay lập tức, chứ không phải sau một khoảng thời gian chờ đợi. Điều này đòi hỏi các ứng dụng web phải có khả năng xử lý và phản hồi nhanh chóng, để đảm bảo trải nghiệm người dùng tốt nhất.
20Which method is used to start a SignalR connection on the client-side?4 lựa chọnTrung bình60% trả lời đúng
A
connect()B
start()C
open()D
init()Lời giải
Mở trang câu hỏi này →Để bắt đầu kết nối SignalR trên phía client, chúng ta cần sử dụng phương thức start(). Phương thức này được sử dụng để khởi tạo và bắt đầu kết nối với server SignalR. Khi gọi phương thức start(), client sẽ gửi yêu cầu đến server để thiết lập kết nối và bắt đầu truyền thông tin. Phương thức start() là phương thức quan trọng và bắt buộc để bắt đầu sử dụng SignalR trên phía client.