47 lines
1.4 KiB
Ruby
47 lines
1.4 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# WebSocket protocol implementation in Ruby
|
||
|
# This module does not provide a WebSocket server or client, but is made for using
|
||
|
# in http servers or clients to provide WebSocket support.
|
||
|
# @author Bernard "Imanel" Potocki
|
||
|
# @see http://github.com/imanel/websocket-ruby main repository
|
||
|
module WebSocket
|
||
|
# Default WebSocket version to use
|
||
|
DEFAULT_VERSION = 13
|
||
|
ROOT = __dir__
|
||
|
|
||
|
autoload :Error, "#{ROOT}/websocket/error"
|
||
|
autoload :ExceptionHandler, "#{ROOT}/websocket/exception_handler"
|
||
|
autoload :Frame, "#{ROOT}/websocket/frame"
|
||
|
autoload :Handshake, "#{ROOT}/websocket/handshake"
|
||
|
autoload :NiceInspect, "#{ROOT}/websocket/nice_inspect"
|
||
|
|
||
|
# Limit of frame size payload in bytes
|
||
|
def self.max_frame_size
|
||
|
@max_frame_size ||= 20 * 1024 * 1024 # 20MB
|
||
|
end
|
||
|
|
||
|
# Set limit of frame size payload in bytes
|
||
|
def self.max_frame_size=(val)
|
||
|
@max_frame_size = val
|
||
|
end
|
||
|
|
||
|
# If set to true error will be raised instead of setting `error` method.
|
||
|
# All errors inherit from WebSocket::Error.
|
||
|
def self.should_raise
|
||
|
@should_raise ||= false
|
||
|
end
|
||
|
|
||
|
# Should protocol errors raise ruby errors? If false then `error` flag is set instead.
|
||
|
def self.should_raise=(val)
|
||
|
@should_raise = val
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Try loading websocket-native if available
|
||
|
begin
|
||
|
require 'websocket-native'
|
||
|
rescue LoadError => e
|
||
|
raise unless e.message =~ /websocket-native/
|
||
|
end
|