是否可以从本地文件(未发送到服务器)连接到服务器?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以从本地文件(未发送到服务器)连接到服务器?相关的知识,希望对你有一定的参考价值。

在我的Web-App中,我想使用websocket连接我的应用程序和服务器中的html文件。 (使用socket.io)

我可以在本地打开文件时立即启动套接字连接(例如file:///../../file.htm)而不是服务器端:http://localhost/

在如下的简单示例中,这怎么可能?

客户:

  var socket = io(); 
  socket.on('connect', function () { 
  socket.emit('a', 'b', function (data) {
  console.log(data); 
  });
});

服务器:

const app = require('express')();
const http = require('http').Server(app);
const io = require('socket.io')(http);
io.sockets.on('connection', function (socket) {
console.log('socket connected');

socket.on('disconnect', function () {
    console.log('socket disconnected');
});
});
http.listen(80, (ff) =>
console.log('Example app listening on port 80!'));
答案

这是最基本的socket.io服务器:

const io = require('socket.io')(3000);
io.on('connection', function (socket) {
    console.log('client connected');

    socket.on('disconnect', () => {
        console.log('client disconnected');
    });
});

console.log('socket.io server started at port 3000');

以及您可以在浏览器中以文件:///client.html打开的html客户端:

<!doctype html>
<html>
  <body>
    <h1>Testing socket.io</h1>
    <h3 id="socket">waiting...</h3>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.1/socket.io.js"></script>
    <script>
        var socket = io('http://localhost:3000');

        socket.on('connect', function() {
            document.getElementById("socket").innerHTML = "socket connected";
        });

        socket.on('disconnect', function() {
            document.getElementById("socket").innerHTML = "socket disconnected";
        });

    </script>
  </body>
</html>

以上是关于是否可以从本地文件(未发送到服务器)连接到服务器?的主要内容,如果未能解决你的问题,请参考以下文章

Android 模拟器无法连接到本地服务器(未指定输入文件)

是否可以将 Azure 管道连接到本地服务器?

如何将 plunker 连接到本地 Node.js 服务器?

将未加入域的 PC 连接到 Azure 中的单个服务器

检测设备是否连接到哪个网络,然后从服务器发送数据取决于连接的网络

SQL Server 无法连接到本地服务器