You want to create a function that returns a function, closing over the variable:
# Load all transport layers
@_transportLayers = {}
handlerCreater = (protocolName) =>
(e) => @eventHandler(e, protocolName)
for protocolName, protocol of transportLayerProtocols
@_transportLayers[protocolName] = new protocol(config)
@_transportLayers[protocolName].on 'data', handlerCreater protocolName