Faits : A. Par décision du 2 septembre 2015, l'Office de l'assurance-invalidité du canton de Fribourg a supprimé le droit à la rente entière d'invalidité dont B._ bénéficiait. B. Le 13 octobre 2015, B._ a envoyé un pli au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, dans lequel se trouvait un mémoire de recours contre la décision du 2 septembre 2015, daté du 5 octobre 2015. Ce pli contenait également une enveloppe vide et ouverte qui avait précédemment été envoyée au Tribunal cantonal, Route André-Piller 21, CP, 1762 Givisiez, mais que la Poste suisse avait retournée à son expéditeur le 13 octobre 2015 en apposant un autocollant "Retour. A déménagé. Délai de réexpédition expiré". Sur l'enveloppe vide, figuraient en outre les déclarations de deux témoins attestant de son dépôt dans une boîte aux lettres de la Poste suisse à U._ le 5 octobre 2015 à 22h15, ainsi qu'un cachet postal mentionnant la date du 6 octobre 2015. Dans ses observations accompagnant son envoi du 13 octobre 2015, B._ a précisé que son recours du 5 octobre 2015 avait été malencontreusement envoyé à l'ancienne adresse du Tribunal cantonal à Givisiez et que la Poste suisse le lui avait retourné. Il a conclu à ce que son recours fût considéré comme étant valablement déposé et demandé, subsidiairement, que sa lettre du 13 octobre 2015 fût interprétée comme une demande de restitution du délai. Par décision du 28 octobre 2015, la juridiction cantonale a considéré que le recours contre la décision du 2 septembre 2015 avait été formé le 13 octobre 2015. Elle a rejeté la demande de restitution du délai et déclaré le recours irrecevable pour cause de tardiveté. C. B._ interjette un recours en matière de droit public contre ce jugement dont il demande l'annulation, en concluant au renvoi de la cause aux premiers juges pour jugement au fond. Le tribunal cantonal et l'office intimé renoncent à formuler des observations sur le recours. L'Office fédéral des assurances sociales a également renoncé à se déterminer.