LogoLogo
HomeNewsSupportVideos
  • Introduction
  • Getting Started
  • What's new in 4.0
    • Known Issues
    • .NET Core Designer
    • Managed Graphics
    • Fluent Markup
    • Markdown Support
    • Upgrade from 3.x
  • Releases
    • What's new in 4.0
    • What's new in 3.5
    • What's new in 3.2
      • View Builder
      • Validation Rules
      • Enhanced Font Support
      • Design-Time Debug
    • What's new in 3.1
    • What's new in 3.0
      • FAQs
      • Update Existing Projects
      • Multi Targeting
      • Visual Studio Designer
      • Referencing Assemblies
      • Docker Support
      • Troubleshooting
      • Deployment
    • What's new in 2.5
    • What's new in 2.2
    • What's new in 2.1
    • What's new in 2.0
    • Upgrade from 1.x
  • Getting Started
    • New Project
    • Templates
    • Troubleshooting
    • License Activation
    • FAQ
    • API
    • Hybrid
    • Deployment
    • Theme Builder
  • Concepts
    • Startup
    • Configuration
    • Load Balancing
    • Designer
    • Layouts
    • Client Profiles
    • Tab Order
    • Compression
    • Embedded Resources
    • Modal Workflow
    • Localization
    • RightToLeft
    • Background Tasks
    • Real Time Web Applications
    • JavaScript
    • JavaScript Object Model
    • Security
    • Synchronization
    • Session Management
    • Theming
    • Dependency Injection
    • Application Switches
    • Visual Studio Code
  • Controls & Components
    • General
      • Application
      • AutoSizing
      • AutoScroll
      • AutoScaling
      • Accessibility
      • Colors & Fonts
      • Embedded Tools
      • Events
      • Touch Events
      • Images
      • Labels
      • ToolTips
      • Data Binding
      • Common Properties
      • Custom Painting
      • Move & Resize
      • Drag & Drop
      • Validation
      • User Data
      • Responsive Properties
      • VB.NET Extensions
    • Common Dialogs
      • FolderBrowserDialog
      • ColorDialog
      • OpenFileDialog
      • SaveFileDialog
    • Editors
      • TextBox
        • TagTextBox
        • MaskedTextBox
        • TypedTextBox
      • DateTimePicker
      • MonthCalendar
      • TimeUpDown
      • DomainUpDown
      • NumericUpDown
      • TrackBar
    • Buttons
      • Button
      • SplitButton
      • CheckBox
      • RadioButton
    • Containers
      • Page
      • Form
      • Desktop
      • Panel
      • FlexLayoutPanel
      • FlowLayoutPanel
      • TableLayoutPanel
      • GroupBox
      • Accordion
      • TabControl
      • UserPopup
      • UserControl
      • ToolBar
      • StatusBar
      • SplitContainer
      • SlideBar
    • Lists & Grids
      • ComboBox
        • UserComboBox
        • TreeViewComboBox
        • ListViewComboBox
      • ListBox
        • CheckedListBox
      • TreeView
      • ListView
      • DataGridView
        • Column
        • TextBoxColumn
        • ButtonColumn
        • LinkColumn
        • ImageColumn
        • MaskedTextBoxColumn
        • DateTimePickerColumn
        • NumericUpDownColumn
        • CheckBoxColumn
        • ComboBoxColumn
      • DataRepeater
      • PropertyGrid
    • Extenders
      • Animation
      • ToolTip
      • ErrorProvider
      • Rotation
      • StyleSheet
      • JavaScript
    • Media
      • Audio
      • Video
      • FlashPlayer
    • Content
      • Label
      • LinkLabel
      • PictureBox
      • ScrollBars
      • Upload
      • AspNetPanel
      • ImageList
      • PdfViewer
      • ProgressBar
      • Spacer
      • Widget
      • WebBrowser
      • IFramePanel
      • HtmlPanel
      • Canvas
      • Shape
      • Line
    • Menus
      • MainMenu
      • MenuBar
      • MenuItem
      • LinkMenuItem
      • ContextMenu
    • Notifications
      • AlertBox
      • MessageBox
      • Toast
    • Other Components
      • Timer
      • BindingSource
      • BindingNavigator
      • DataSet
      • EventLog
      • MessageQueue
      • PerformanceCounter
Powered by GitBook
On this page
  • Fundamentals of Real Time Web Applications
  • WebSocket or Polling
  • Main Real Time Features in Wisej.NET

Was this helpful?

Export as PDF
  1. Concepts

Real Time Web Applications

PreviousBackground TasksNextJavaScript

Last updated 4 months ago

Was this helpful?

From :

The real-time web is a network web using technologies and practices that enable users to receive information as soon as it is published by its authors, rather than requiring that they or their software check a source periodically for updates.

Fundamentals of Real Time Web Applications

In our view, a Real Time Web Application must be able to:

  • Update the user's browser (client) seamlessly at any time, as if directly connected to the server

  • Receive events and updates from the client without delay

Web-based video games exemplify Real Time Web. Wisej.NET extends this concept to Line of Business Applications.

WebSocket or Polling

When the server supports WebSocket connections, Wisej.NET "pushes" real-time updates to the client at any time. A background task can update connected clients asynchronously by calling Application.Update().

Some servers or browsers may not support WebSocket connections and can only use HTTP requests. In these cases, the server cannot contact the browser directly since each HTTP request starts and terminates when the browser contacts the server. One solution is to create a Wisej.Web.Timer to periodically fire server events and allow Wisej.NET to update the client.

SignalR emulates WebSocket connections using "long polling" - keeping a pending request open to allow server responses, then opening a new suspended request. However:

  • Each request blocks a thread

  • Prone to timeout errors

  • Browsers limit open AJAX requests (4-8), risking request blocking

Without WebSocket support, use automatic polling in Wisej.NET:

  • Call Application.StartPolling() and Application.EndPolling()

Wisej.NET sends all updates since the last request back to the client with each request. With a background task but no WebSocket connection, the browser updates on every event (timer, click, etc.).

Main Real Time Features in Wisej.NET

Feature
Description

Push updates

Wisej.NET applications can update the client during a request or asynchronously from a background task

Modal workflow

Server-side business logic, UI logic, or UI code can display modal dialogs/message boxes and suspend execution until closure

Complete session state

Application state stays synchronized between client/server - refresh at any time to reload full state including modals

Live events

Server code responds to real-time pointer events (mouse movement, wheel, control enter/leave)

Remote methods

Server code can call client JavaScript and vice-versa at any time

Drawing and painting

Configure polling Interval in the file for non-WebSocket clients

Controls can draw/paint on the client browser using HTML5 <canvas>. See the extension and example

Wikipedia
configuration
ProgressCircle
CustomPainting