Suppose two people are almost but not quite 1km away from each other and are having a conversation on there. To a third person who has one of these people in range, but not the other, the messages might seem quite confusing and/or they might feel addressed even though they are not.
A possible solution might be to define fixed cells of roughly 1km in diameter instead of using immediate neighbourhoods centered around every participant. Or you could dynamically create rooms and you are added to the closest one to you (up to some maximum size)? The latter might also help with getting any users at all in less densely populated areas.