Sha256: 987aaf30fb30c4ead2dd8b39639eeaad9c003bff38db5eb37f06e35566018533

Contents?: true

Size: 816 Bytes

Versions: 3

Compression:

Stored size: 816 Bytes

Contents

# frozen_string_literal: true
module LiteCable
  # Rack middleware to hijack sockets.
  #
  # Uses thread-per-connection model (thus recommended only for development and test usage).
  #
  # Inspired by https://github.com/ngauthier/tubesock/blob/master/lib/tubesock.rb
  module Server
    require "websocket"
    require "lite_cable/server/subscribers_map"
    require "lite_cable/server/client_socket"
    require "lite_cable/server/heart_beat"
    require "lite_cable/server/middleware"

    class << self
      attr_accessor :subscribers_map

      # Broadcast encoded message to the stream
      def broadcast(stream, message, coder: nil)
        coder ||= LiteCable.config.coder
        subscribers_map.broadcast stream, message, coder
      end
    end

    self.subscribers_map = SubscribersMap.new
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
litecable-0.4.2 lib/lite_cable/server.rb
litecable-0.4.1 lib/lite_cable/server.rb
litecable-0.4.0 lib/lite_cable/server.rb