module WebSocket module Mask 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 end end