node.jsサーバーがあり、socket.ioリスナーが接続されています。コードはこのようなものです。一般的な方法でsocket.ioサーバーに接続できますか?
const server = new Hapi.Server();
server.connection({
"port": config.port
});
let io = socketio(server.listener);
io.on("connection", function(socket) {
console.log("A user connected");
socket.on("disconnect", function(){
console.log("A user disconnected");
});
// receive message from client
socket.on("client-server", function(msg) {
console.log(msg);
});
});
// somewhere to emit message
io.emit("server-client", "server to client message");
通常、私はwebsocketサーバーに接続する標準的な方法を使用します。たとえば、次のようになります。
<!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>
問題なく動作します。今、私の同僚は、彼のFMEサーバーからwebsocketサーバーに接続したいと思っています。彼の研究に基づいて、彼が使用できる唯一の方法は、このようなURLを使用しているのWebSocketサーバーに接続します。
ws://localhost:3000/websocket
私の質問は:このタイプを使用してサーバーのリスナーをsocket.ioに接続する方法があります文字列の?
もしそうでない場合は、ws://host:port
urlでwebsocketサーバーを作成し、それを私のnode.jsサーバーに接続する方法はありますか?
または、FMEサーバーのsocket.ioリスナーに接続する方法はありますか?
io.set('transports', ['websocket']);
そして、クライアント上で、この追加:今、あなただけのWebSocketサーバーに接続することができます
var socket = io({transports: ['websocket']});
をサーバー上でこれを追加し、唯一のWebSocketを使用するSocket.IOを伝えるために
あなたの同僚は自分のサーバーから使用できるsocket.ioクライアントライブラリを入手する必要があります。 Socket.ioはWebSocketの上にある独自のプロトコルなので、socket.ioサーバに接続するにはsocket.io互換のクライアントライブラリが必要です。私は見る。 – jfriend00
問題は、彼が彼のFMEサーバで何らかのコーディング作業を行うことができないということです。したがって、彼がsocket.ioクライアントをセットアップする方法はありません。良いことは、私たちはいくつかのpythonスクリプトをFMEサーバにデプロイできることです。 Pythonのsocket.ioクライアントをnode.jsで作成したsocket.ioサーバーに接続できますか? – zhangjinzhou
はい、pythonにはsocket.ioのサポートがあります。 – jfriend00