2017-04-01 1 views
1

J'ai un serveur node.js et j'y ai attaché un écouteur socket.io. Le code est comme ça. Normalement, j'utilise la méthode standard pour me connecter au serveur WebSocket. Un exemple est comme ceci:Puis-je me connecter au serveur socket.io en utilisant une méthode générique?

<!DOCTYPE html> 
<html> 
    <head><title>Hello world</title></head> 
    <script src="http://localhost:3000/socket.io/socket.io.js"></script> 
    <script> 
    var socket = io(); 
    socket.on('server-client', function(data) {document.write(data)}); 
    socket.emit('client-server', 'test message'); 
    </script> 
    <body>Hello world</body> 
</html> 

Cela fonctionne sans problème. Maintenant, mon collègue veut se connecter au serveur websocket à partir de son serveur FME. Sur la base de ses recherches, la seule façon qu'il peut utiliser pour se connecter à un serveur websocket utilise une URL comme ceci:

ws://localhost:3000/websocket 

Ma question est: est-il un moyen de se connecter à Socket.IO écoute du serveur en utilisant ce type de chaîne?

Sinon, existe-t-il un moyen de créer un serveur websocket avec ws://host:port et de l'attacher à mon serveur node.js?

Ou est-il possible de se connecter à l'écouteur socket.io sur le serveur FME?

+1

Votre collègue a besoin d'une bibliothèque client socket.io qu'il peut utiliser depuis son serveur. Socket.io est son propre protocole au dessus de webSocket donc vous avez besoin d'une bibliothèque cliente compatible socket.io afin de pouvoir vous connecter à un serveur socket.io. – jfriend00

+0

Je vois. Le problème est qu'il ne peut effectuer aucun travail de codage sur son serveur FME. Par conséquent, il n'y a aucun moyen pour lui d'installer un client socket.io. Une bonne nouvelle est que nous pouvons déployer un script python sur le serveur FME. Un client python socket.io peut-il se connecter à mon serveur socket.io créé dans node.js? – zhangjinzhou

+0

Oui, il existe un support socket.io en python. – jfriend00

Répondre

0

Pour dire Socket.IO utiliser WebSocket uniquement, ajoutez sur le serveur:

io.set('transports', ['websocket']); 

Et sur le client ajouter ceci:

var socket = io({transports: ['websocket']}); 

Maintenant, vous ne pouvez vous connecter au serveur WebSocket en utilisant le protocole ws.

+0

Il doit encore créer un client droit? Il ne peut pas faire de codage cependant. – zhangjinzhou