IP Library Granted Patent US 9,177,328
Granted Patent B2
US 9,177,328 · App. 13/529,996 · Granted Nov 3, 2015

Peer-to-peer network chatting

Inventor: Patrick Williams (Berkeley, CA)
Assignee: BitTorrent, Inc.
G06Q30/0251H04L12/1818H04L67/1046H04L67/1065
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,177,328
App. No.
13/529,996
Granted
Nov 3, 2015
Kind
B2
Abstract

A peer in a peer-to-peer network joins an advertisement room having an associated identifier. A joining peer identifies a peer closest to the advertisement room. In various embodiments, the peer that is closest to the advertising room is the peer having a discreet hash table ID closest to the advertisement room identifier. The joining peer requests from the closest peer information about peers that the closest peer knows to be part of the advertisement room. The closest peer provides the joining peer with connection information for those peers, and the joining peer establishes connections with the peers. Peers in the advertisement room provide advertisements for chat rooms. To join a chat room, a peer determines which of its peers in the advertisement room is the closest peer to the chat room, based on the chat room identifier, and informs that peer that it is now part of the chat room.

Claims (62)

1. A method for chatting in a peer-to-peer computer network, the method comprising:

joining, by a computer system, an advertisement peer-to-peer network by establishing a connection with a plurality of peers that are part of the advertisement peer-to-peer network;

receiving, by the computer system via the advertisement peer-to-peer network, a chat room advertisement identifying a chat room;

responsive to receiving a request from a user of the computer system to join the identified chat room, calculating, by the computer system for each of the plurality of peers, a difference between an identifier associated with the peer and an identifier associated with the chat room;

selecting, by the computer system a peer from the plurality of peers based on the selected peer having the lowest calculated difference;

requesting, by the computer system from the selected peer, connection information associated with peers that are part of the chat room; and

responsive to receiving connection information from the selected peer, joining, by the computer system, the chat room using the received connection information.

2. The method of claim 1 , further comprising:

receiving, by the computer system, a chat message intended for the chat room from a peer in the chat room;

displaying, by the computer system, the received chat message in a user interface; and

forwarding, by the computer system, the chat message to at least one other peer in the chat room.

3. A computer program product for chatting in a peer-to-peer computer network, the computer program product stored on a non-transitory computer readable medium and including code configured to cause a computer system to carry out steps comprising:

joining an advertisement peer-to-peer network by establishing a connection with a plurality of peers that are part of the advertisement peer-to-peer network;

receiving, via the advertisement peer-to-peer network, a chat room advertisement identifying a chat room;

responsive to receiving a request from a user of the computer system to join the identified chat room, calculating, for each of the plurality of peers, a difference between an identifier associated with the peer and an identifier associated with the chat room;

selecting a peer from the plurality of peers based on the selected peer having the lowest calculated difference;

requesting, from the selected peer, connection information associated with peers that are part of the chat room; and

responsive to receiving connection information from the selected peer, joining the chat room using the received connection information.

4. The method of claim 1 , wherein joining the chat room comprises:

establishing a connection with one or more peers that are part of the chat room using the received connection information.

5. The method of claim 1 , further comprising:

receiving an additional request from the user to send a chat room message in the chat room;

generating the chat room message based on the additional request; and

transmitting the chat room message to a subset of peers from an additional plurality of peers that are part of the chat room, the computer system having a connection with each peer in the subset.

6. The method of claim 5 , wherein the chat room message includes the identifier associated with the chat room, a user name associated with the user, and a number of times that the chat room message should be forwarded to one or more peers that are part of the chat room.

7. The method of claim 1 , further comprising:

identifying a time to live associated with the chat room advertisement; and

responsive to determining the time to live has not elapsed, forwarding the chat room advertisement to at least one of the plurality of peers that are part of the advertisement peer-to-peer network.

8. The method of claim 1 , further comprising:

periodically transmitting chat room advertisements in the advertisement peer-to-peer network for chat rooms that the computer system is a part of, each chat room advertisement identifying at least one of the chat rooms.

9. The computer program product of claim 3 , wherein the steps further comprise:

receiving a chat message intended for the chat room from a peer in the chat room;

displaying the received chat message in a user interface; and

forwarding the chat message to at least one other peer in the chat room.

10. The computer program product of claim 3 , wherein joining the chat room comprises:

establishing a connection with one or more peers that are part of the chat room using the received connection information.

11. The computer program product of claim 3 , wherein the steps further comprise:

receiving an additional request from the user to send a chat room message in the chat room;

generating the chat room message based on the additional request; and

transmitting the chat room message to a subset of peers from an additional plurality of peers that are part of the chat room, the computer system having a connection with each peer in the subset.

12. The computer program product of claim 11 , wherein the chat room message includes the identifier associated with the chat room, a user name associated with the user, and a number of times that the chat room message should be forwarded to one or more peers that are part of the chat room.

13. The computer program product of claim 3 , wherein the steps further comprise:

identifying a time to live associated with the chat room advertisement; and

responsive to determining the time to live has not elapsed, forwarding the chat room advertisement to at least one of the plurality of peers that are part of the advertisement peer-to-peer network.

14. The computer program product of claim 3 , wherein the steps further comprise:

periodically transmitting chat room advertisements in the advertisement peer-to-peer network for chat rooms that the computer system is a part of, each chat room advertisement identifying at least one of the chat rooms.

15. A system for chatting in a peer-to-peer computer network, the system comprising:

one or more computer processors; and

a non-transitory computer readable medium including code configured to cause the one or more processors to carry out steps comprising:

joining an advertisement peer-to-peer network by establishing a connection with a plurality of peers that are part of the advertisement peer-to-peer network;

receiving, via the advertisement peer-to-peer network, a chat room advertisement identifying a chat room;

responsive to receiving a request from a user to join the identified chat room, calculating, for each of the plurality of peers, a difference between an identifier associated with the peer and an identifier associated with the chat room;

selecting a peer from the plurality of peers based on the selected peer having the lowest calculated difference;

requesting, from the selected peer, connection information associated with peers that are part of the chat room; and

responsive to receiving connection information from the selected peer, joining the chat room using the received connection information.

16. The system of claim 15 , wherein the steps further comprise:

receiving an additional request from the user to send a chat room message in the chat room;

generating the chat room message based on the additional request; and

transmitting the chat room message to a subset of peers from an additional plurality of peers that are part of the chat room, a connection existing with each peer in the subset.

17. The system of claim 15 , wherein the steps further comprise:

identifying a time to live associated with the chat room advertisement; and

responsive to determining the time to live has not elapsed, forwarding the chat room advertisement to at least one of the plurality of peers that are part of the advertisement peer-to-peer network.

Assignments (2)
CHANGE OF NAME Recorded Jul 27, 2021
From: BITTORRENT, INC.
To: RAINBERRY, INC.
Reel/Frame 056995/0889 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2012
From: WILLIAMS, PATRICK
To: BITTORRENT, INC.
Reel/Frame 028895/0269 →
Continuity (2)
Provisional Application 61499521 · Jun 21, 2011
Related Publication 20120331073A1 · Dec 27, 2012