我有一个 node.js 服务器,并将 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 服务器。根据他的研究,他可以用来连接到 websocket 服务器的唯一方法是使用这样的 url:
ws://localhost:3000/websocket
我的问题是:有没有办法使用这种类型的字符串连接到 socket.io 服务器侦听器?
如果没有,有没有办法用ws://host:port
url 创建一个 websocket 服务器并将其附加到我的 node.js 服务器?
或者,有没有办法连接到 FME 服务器中的 socket.io 侦听器?