Socket.io: io.origins() ne prend pas un tableau de chaînes

Créé le 3 mars 2018  ·  4Commentaires  ·  Source: socketio/socket.io

Vous voulez:

  • [x] signaler un bogue
  • [ ] demander une fonctionnalité

Comportement actuel

Dans la documentation, il indique que io.origins() prend un tableau de chaînes/origines (voir l'exemple https://socket.io/docs/server-api/#server-origins-value), alors qu'en fait c'est le cas ne pas. Cela ne fonctionne que lorsque vous fournissez une chaîne au lieu d'un tableau.

Étapes à reproduire (si le comportement actuel est un bogue)

Réglage

io.origins(['http://localhost:3000'])

puis la connexion à partir de localhost:3000 ne fonctionne pas.

Cela ne fonctionne que lors de la définition io.origins('http://localhost:3000')

Comportement attendu

Installer

  • Système d'exploitation : macOS High Sierra 10.13.3
  • navigateur : Chrome 64.0.3282.186
  • version socket.io : 2.0.4

Commentaire le plus utile

Je pense que le protocole ne devrait pas être inclus:

io.origins(['localhost:3000', 'localhost:3001']);
// or
io.origins('localhost:3000');

Tous les 4 commentaires

Je pense que le protocole ne devrait pas être inclus:

io.origins(['localhost:3000', 'localhost:3001']);
// or
io.origins('localhost:3000');

Fonctionne avec le protocole lorsqu'il est fourni sous forme de chaîne, pas lorsqu'il est fourni dans un tableau 😄

Mais merci pour la précision !

Je pense qu'il est implémenté avec un indexOf , d'où le comportement funky.

Je vais ajouter une note dans la documentation.

Je viens de rencontrer le même problème - un tableau avec le protocole dans l'URL, par exemple io.origins([https://subdomain.domain.ee:*]) ne fonctionne pas, alors que io.origins([subdomain.domain.ee:*]) fonctionne.

Alors que l'exemple dans la documentation inclut https:// dans l'exemple de tableau : io.origins(['https://foo.example.com:443']); .

En regardant this commit , il semble que la documentation ait été modifiée pour inclure cet exemple, mais cela m'est toujours arrivé?

J'utilisais [https://subdomain.domain.ee:*] comme URL, ce qui ne fonctionnait pas, ni avec http:// (bien que dans mon cas, il ne devrait être accessible que via https:// toute façon). Une fois que j'ai supprimé le protocole, il a commencé à fonctionner.

Je pensais le signaler ici au cas où. Étais-je peut-être raté quelque chose?

Cette page vous a été utile?
0 / 5 - 0 notes