As far as people coming up to you when u are playing or singing.....
I was playing harmonica and singing Piano Man (which I have played for 21 years and am quite sick of but the audience LOVES it---and it's not my living room so I play what they want not what I do) and this drunk guy came up to me with a request. He kept asking me over and over while I was trying to play and sing. Finally I stopped the music altogether and said into the mic very nicely , "I'm sorry but can you come back in three minutes, I'm singing this song for somebody right now." Then I resumed the song.
A bit tacky but it sure did work! He apologized and came back and I was very nice to him and did his request. A firm word with a smile on your face usually disarms a drunk every time. If you have a smile, it is very difficult for them to elevate the level of rudeness or hostility.
Also, if you have a persistent person who has a request and you have 15 others ahead of him then I suggest showing him the list and saying "I can't wait to play your song--it's a really good one, but I have all these people who requested stuff ahead of you and I can't cheat." That usually disarms them. Nobody wants to be a "cheater." Again, say it nicely with a smile on your face. But be firm.
I've learned a thing or two about avoiding confrontations since I'm 5'6 and 155 lbs!