module WebSocket::Mask

Public Class Methods

mask(payload, mask) click to toggle source
# File lib/websocket/mask.rb, line 3
def self.mask(payload, mask)
  return payload if mask.nil? || payload.empty?

  payload.tap do |result|
    payload.bytesize.times do |i|
      result.setbyte(i, payload.getbyte(i) ^ mask.getbyte(i % 4))
    end
  end
end