def __init__(self, nombre): self.nombre = nombre self.channel = grpc.insecure_channel(f'{SERVER}:{PORT}') self.stub = Chat_pb2_grpc.ChatStub(self.channel) self.id = self.stub.Connection(Chat_pb2.Nombre( nombre=nombre)).id # se le pide al server que nos de un id print(f'Id cliente: {self.id}, Nombre Cliente: {self.nombre}') print( '==================================BEGIN=======================================' ) self.my_user = Chat_pb2.User(id=self.id, nombre=self.nombre) #se crea thread para que escuche los mensajes entrantes threading.Thread(target=self.ReciveMessage, daemon=True).start()
def SendMessage(self, contenido, destino): try: response = self.stub.SendMessage( Chat_pb2.Message( emisor=self.my_user, contenido=contenido, timestamp=time.strftime("%c"), receptor=Chat_pb2.User(id=int(destino.split('#')[1]), nombre=destino.split('#')[0]), id=self.stub.New_message(Chat_pb2.Id(id=self.id)).id)) if not response.flag: print( "NO existe el usuario a quien se le quiere enviar el mensaje " ) except grpc.RpcError as err: print(err)
def ListaDeUsuarios(self, id, context): r = Chat_pb2.UserList() for i in self.nombre: r.user.append(Chat_pb2.User(id=i, nombre=self.nombre[i])) return r