精华内容
下载资源
问答
  • socket.io

    千次阅读 2018-11-21 10:26:37
    Socket.IO是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用 socket.io的特点 易用性:socket.io封装了服务端和客户端,使用起来非常简单方便。...

    Socket.IO是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用

    socket.io的特点

    • 易用性:socket.io封装了服务端和客户端,使用起来非常简单方便。
    • 跨平台:socket.io支持跨平台,这就意味着你有了更多的选择,可以在自己喜欢的平台下开发实时应用。
    • 自适应:它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用,非常方便和人性化,而且支持的浏览器最低达IE5.5。

    安装

    使用npm安装socket.io

    npm install socket.io
    

    启动一个简单的服务

    • 新建目录,新建app.js, index.html

    • app.js 服务端

      var express = require('express');
      var path = require('path');
      var app = express();
      
      app.get('/', function (req, res) {
          res.sendFile(path.resolve('index.html'));
      });
      
      var server = require('http').createServer(app);
      var io = require('socket.io')(server);
      
      io.on('connection', function (socket) {
          console.log('客户端已经连接');
          socket.on('message', function (msg) {
              console.log(msg);
              socket.send('sever:' + msg);
          });
      });
      server.listen(80);
      
    • index.html 客户端

      服务端运行后会在根目录动态生成socket.io的客户端js文件 客户端可以通过固定路径/socket.io/socket.io.js添加引用 客户端加载socket.io文件后会得到一个全局的对象io connect函数可以接受一个url参数,url可以socket服务的http完整地址,也可以是相对路径,如果省略则表示默认连接当前路径 创建index.html文件

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>socket.io</title>
      </head>
      <body>
          <h2>socket.io</h2>
      	<script src="/socket.io/socket.io.js"></script> // 引用脚本,固定写法
       		window.onload = function(){
          		var socket = io.connect('/');
          		//监听与服务器端的连接成功事件
          		socket.on('connect',function(){
                      console.log('连接成功');
                  });
                  //监听与服务器端断开连接事件
                  socket.on('disconnect',function(){
                     console.log('断开连接');
                  });
               };
      </body>
      </html>
      

    发送消息

    成功建立连接后,我们可以通过socket对象的send函数来互相发送消息

    • 修改index.html 如下:
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>socket.io</title>
    </head>
    <body>
        <h2>socket.io</h2>
    	<script src="/socket.io/socket.io.js"></script> // 引用脚本,固定写法
     		window.onload = function(){
        		var socket = io.connect('/');
        		//监听与服务器端的连接成功事件
        		socket.on('connect',function(){
                    console.log('连接成功');
                     //客户端连接成功后发送消息'welcome'
                       socket.send('welcome');
                });
                //客户端收到服务器发过来的消息后触发
                socket.on('message',function(message){
                   console.log(message);
                });
                //监听与服务器端断开连接事件
                socket.on('disconnect',function(){
                   console.log('断开连接');
                });
             };
    </body>
    </html>
    
    • app.js 修改如下

      let express = require('express')
      let http = require('http')
      
      let app = express()
      app.use(express.static(__dirname))
      app.get('/', function (res, req) {
          res.header('Content-Type', 'text/html;charset=utf8')
          res.sendFile(path.resolve('index.html'))
      })
      let server = http.createServer(app)
      
      // 因为websocket协议是要依赖http协议实现握手的,所以需要把httpServer的实例传递给socket.io
      let socketIo = require('socket.io')
      let io = socketIo(server)
      // 在服务器监听客户端的链接
      io.on('connection', socket => {
          console.log('客户端连接到服务器')
          // 监听接受客户端发过来的消息
          socket.on('message', msg => {
              console.log('客户端等候扫服务器的消息', msg)
              // 像客户端发送数据
              socket.send(`服务器说:${msg}`)
          })
          socket.on('disconect', function () {
              console.log('断开连接')
          })
          socket.on('error', () => {
              console.log('连接错误')
          })
      })
      
      server.listen(9999)
      

    分析

    send函数只是emit的封装

    function send(){
      var args = toArray(arguments);
      args.unshift('message');
      this.emit.apply(this, args);
      return this;
    }
    
    • emit函数有两个参数
      • 第一个参数是自定义的事件名称,发送方发送什么类型的事件名称,接收方就可以通过对应的事件名称来监听接收
      • 第二个参数是要发送的数据

    服务端事件

    事件名称 含义
    connection 客户端成功连接到服务器
    message 接收到客户端发送的消息
    disconnect 客户端断开连接
    error 监听错误

    客户端事件

    事件名称 含义
    connect 成功连接到服务器
    message 接收到服务器发送的消息
    disconnect 客户端断开连接
    error 监听错误

    划分命名空间

    可以把服务划分成多个命名空间,默认/不同空间不能通信

    • 可以把服务分成多个命名空间,默认/,不同空间内不能通信

      io.on('connection', socket => {});
      io.of('/news').on('connection', socket => {});
      
    • 客户端链接命名空间

      let socket = io('http://localhost/');
      let socket = io('http://localhost/news');
      

    房间

    • 可以把一个命名空间分成多个房间,一个客户端可以同时进入多个房间。

    • 如果大大厅里广播 ,那么所有在大厅里的客户端和任何房间内的客户端都能收到消息。

    • 所有在房间里的广播和通信都不会影响到房间以外的客户端

    • 进入房间

      socket.join('chat');//进入chat房间
      
    • 离开房间

      socket.leave('chat');//离开chat房间
      

    全局广播

    广播就是把消息发送给多个客户端

    • 向大厅和房间广播

      io.emit('message','全局广播');
      
    • 像除了自己之外的其它客户端广播

      socket.broadcast.emit('message', msg);
      

    房间内广播

    • 向房间内广播, 从服务器的角度来提交事件,提交者会包含在内

      向myRoom广播一个事件,在此房间内除了自己外的所有客户端都会收到消息
      io.in('myRoom').emit('message', msg);
      io.of('/news').in('myRoom').emit('message',msg);
      
    • 向房间内广播, 从客户端的角度来提交事件,提交者会排除在外

      //向myRoom广播一个事件,在此房间内除了自己外的所有客户端都会收到消息
      socket.broadcast.to('myroom').emit('message', msg);
      

    总结

    以上就是简单的socket常用的api和思想,恩么么,到此为止,还差一个demo,趁热打铁,赶紧写一个。。。。

    展开全文
  • socket.io,socket.io-client 用于java或android连接nodejs websocket
  • 服务端: node.js ...需要依赖:vue-socket.iosocket.io-client // main.js import VueSocketio from 'vue-socket.io' import socketio from 'socket.io-client'; Vue.use(new VueSocketio({ debug: tr...

    服务端: node.js 

    前端环境: uni-app

    需要依赖: vue-socket.io  socket.io-client

    // main.js
    import VueSocketio from 'vue-socket.io'
    import socketio from 'socket.io-client';
    
    Vue.use(new VueSocketio({
      debug: true,
      connection: socketio('http://真实线上地址:3300')
    }))
    

    nginx配置 nginx.conf

    server {
      location /socket.io/ {
        proxy_pass http://127.0.0.1:3300/;    
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
      }
    }

    原因: 会自动添加/socket.io前缀

    展开全文
  • 前端使用socket.io连接不上java服务器?前端代码:import VueSocketio from 'vue-socket.io';import socketio from 'socket.io-client';Vue.use(VueSocketio, socketio('http://10.1.2.44:8809',{path:'/mqtt'}));后台...

    前端使用socket.io连接不上java服务器?

    前端代码:

    import VueSocketio from 'vue-socket.io';

    import socketio from 'socket.io-client';

    Vue.use(VueSocketio, socketio('http://10.1.2.44:8809',{path:'/mqtt'}));

    后台是用就java开发的,浏览器链接不上,一直在发请求

    a9de694b244248f2e9b733482355e05e.png

    自己使用nodejs搭建本地的服务

    const express = require('express');

    const http = require('http');

    const socketIo = require('socket.io')

    const app = express();

    app.use(express.static('./static'));

    var server = http.Server(app);

    var io = socketIo(server);

    app.get('/', function (req, res) {

    res.sendFile(__dirname + '/index.html');

    });

    io.on('connection', function (socket) {

    socket.emit('news', { hello: 'world' });

    socket.on('my other event', function (data) {

    console.log(data);

    });

    });

    server.listen(8888,'10.1.93.110',function(){

    console.log('8888端口监听成功!');

    });

    前端都能链接上

    import VueSocketio from 'vue-socket.io';

    import socketio from 'socket.io-client';

    Vue.use(VueSocketio, socketio('http://10.1.93.110:8888'));

    Question:前端使用socket.io与java后台建立socket链接,java后台是否需要也同样需要使用类似soket.io格式的库?

    展开全文
  • socket.io 中文案例文档 (官方socket.io聊天应用demo翻译) 英文原文 http://socket.io/get-started/chat/ Get Started: Chat application In this guide we’ll create a basic chat application. It requires ...

    英文原文   http://socket.io/get-started/chat/

    Get Started: Chat application

    In this guide we’ll create a basic chat application. It requires almost no basic prior knowledge of Node.JS or Socket.IO, so it’s ideal for users of all knowledge levels.

    开始:聊天应用

    在这个教程,我们将创建一个基本的聊天应用。它几乎不需要前置基础的Node.js或者Socket.IO知识,所以它适合所有知识层次的用户人群。

     

    Introduction

    Writing a chat application with popular web applications stacks like LAMP (PHP) has traditionally been very hard. It involves polling the server for changes, keeping track of timestamps, and it’s a lot slower than it should be.

    Sockets have traditionally been the solution around which most realtime chat systems are architected, providing a bi-directional communication channel between a client and a server.

    This means that the server can push messages to clients. Whenever you write a chat message, the idea is that the server will get it and push it to all other connected clients.

    介绍

    使用LAMP(PHP)那样的流行的web应用写一个聊天应用通常是很难的。它包含轮询服务器的变化,记录时间戳,并且它比实际会慢很多。

    Sockets 通常作为大多数实时聊天系统的解决方案被架构,提供一个连接服务器和客户端的双向通讯通道。

    这个意味着服务器能够推送消息到客户端。当你写一个聊天消息,服务器将获取它,并且推送它到所有的连接着的客户端。

     

    The web framework

    The first goal is to setup a simple HTML webpage that serves out a form and a list of messages. We’re going to use the Node.JS web framework express to this end. Make sure Node.JS is installed.

    First let’s create a package.json manifest file that describes our project. I recommend you place it in a dedicated empty directory (I’ll call mine chat-example).

    web框架

    第一步是设置一个简单的HTML页面,提供一个表单和一个消息列表。为此,我们将使用Node.JS的express框架。请确保Node.JS 已经安装.

    首先,我们创建package.json清单文件,描述我们的项目。我建议你将它置于一个专用的空的文件夹中(称为chat-example)

     

    {
      "name": "socket-chat-example",
      "version": "0.0.1",
      "description": "my first socket.io app",
      "dependencies": {}
    }

    Now, in order to easily populate the dependencies with the things we need, we’ll use npm install --save:

    现在,为了方便的移植我们需要的依赖项,我们将使用 npm install --save命令。

    npm install --save express@4.10.2

    Now that express is installed we can create an index.js file that will setup our application.

    现在,express被安装,我们能够创建一个index.js文件来建立我们的应用。

    var app = require('express')();
    var http = require('http').Server(app);
    
    app.get('/', function(req, res){
      res.send('<h1>Hello world</h1>');
    });
    
    http.listen(3000, function(){
      console.log('listening on *:3000');
    });

    This translates into the following:

    1. Express initializes app to be a function handler that you can supply to an HTTP server (as seen in line 2).

    2. We define a route handler / that gets called when we hit our website home.

    3. We make the http server listen on port 3000.

    If you run node index.js you should see the following:

    以下是代码介绍:

    1. Express 初始化app 作为函数处理器,你能够提供给HTTP服务器 (第二行).

    2. 我们定义一个路由处理器 / 用来访问我们站点的主页.

    3. 我们让http服务器侦听3000端口.

    如果你运行 node index.js 你将看到如下:

    And if you point your browser to http://localhost:3000:

    如果你通过你的浏览器访问http://localhost:3000:

    Serving HTML

    提供HTML

    So far in index.js we’re calling res.send and pass it a HTML string. Our code would look very confusing if we just placed our entire application’s HTML there. Instead, we’re going to create a index.html file and serve it.

    Let’s refactor our route handler to use sendFile instead:

    到目前为止,在index.js 中,我们调用res.send,并且传递给它一个HTML字符串。如果我们仅仅将整个应用的HTML置于这里,我的代码将看上去令人沮丧。替代,我们将创建一个index.html文件,并且提供它。

    让我们用sendfile替代重构路由处理器。

    app.get('/', function(req, res){
      res.sendFile(__dirname + '/index.html');
    });

    And populate index.html with the following:

    并且用以下代码填入index.html:

    <!doctype html>
    <html>
      <head>
        <title>Socket.IO chat</title>
        <style>
          * { margin: 0; padding: 0; box-sizing: border-box; }
          body { font: 13px Helvetica, Arial; }
          form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
          form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
          form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
          #messages { list-style-type: none; margin: 0; padding: 0; }
          #messages li { padding: 5px 10px; }
          #messages li:nth-child(odd) { background: #eee; }
        </style>
      </head>
      <body>
        <ul id="messages"></ul>
        <form action="">
          <input id="m" autocomplete="off" /><button>Send</button>
        </form>
      </body>
    </html>

    If you restart the process (by hitting Control+C and running node index again) and refresh the page it should look like this:

    如果你重启进程( Control+C 并且再次 node index) 并且刷新页面,你将看到如下:

    Integrating Socket.IO

    集成Socket.IO

    Socket.IO is composed of two parts:

    • A server that integrates with (or mounts on) the Node.JS HTTP Server: socket.io

    • A client library that loads on the browser side: socket.io-client

    During development, socket.io serves the client automatically for us, as we’ll see, so for now we only have to install one module:

    Socket.IO 由两方面组成:

    • 一个服务器,集成了(或者挂载了)Node.JS HTTP Server: socket.io

    • 浏览器端加载了客户端库: socket.io-client

    随着发展,socket.io 自动为我们提供了客户端库。我们就会看到,我们仅仅只需下载一个模块:

    npm install --save socket.io

    That will install the module and add the dependency to package.json. Now let’s edit index.js to add it:

    那样将安装模块,并且在package.json添加dependency 。现在我们编辑index.js 来添加它。

    var app = require('express')();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    
    app.get('/', function(req, res){
      res.sendfile('index.html');
    });
    
    io.on('connection', function(socket){
      console.log('a user connected');
    });
    
    http.listen(3000, function(){
      console.log('listening on *:3000');
    });

    Notice that I initialize a new instance of socket.io by passing the http (the HTTP server) object. Then I listen on theconnection event for incoming sockets, and I log it to the console.

    Now in index.html I add the following snippet before the </body>:

    注意,我们通过传递http对象(HTTP服务器)初始化了一个新的socket.io实例. 然后,我们侦听到来的socket连接事件,并且记录它到控制台.

    现在我们在index.html的<body>标签前面添加如下代码段:

    <script src="/socket.io/socket.io.js"></script>
    <script>
      var socket = io();
    </script>

    That’s all it takes to load the socket.io-client, which exposes a io global, and then connect.

    Notice that I’m not specifying any URL when I call io(), since it defaults to trying to connect to the host that serves the page.

    If you now reload the server and the website you should see the console print “a user connected”.
    Try opening several tabs, and you’ll see several messages:

    这样就加载了socket.io-client,暴露了一个io全局变量,并且连接。

    注意,我们当我们调用io(),没有指定任何URL,这样它默认尝试连接提供页面的主机。

    如果你现在重启服务器,并且网站你将看到控制台打印出“a user connected”.

    尝试打开多个网页标签,你将看到多条记录如下:

    Each socket also fires a special disconnect event:

    每个socket也会复发一个特别的disconnect事件:

    io.on('connection', function(socket){
      console.log('a user connected');
      socket.on('disconnect', function(){
        console.log('user disconnected');
      });
    });

    Then if you refresh a tab several times you can see it in action:

    如果你刷新页面,几秒钟后你能看到如下动作:

    Emitting events

    The main idea behind Socket.IO is that you can send and receive any events you want, with any data you want. Any objects that can be encoded as JSON will do, and binary data is supported too.

    Let’s make it so that when the user types in a message, the server gets it as a chat message event. The scripts section inindex.html should now look as follows:

    触发事件

    在Socket.IO之前主要的想法是,你能够传递和接收任意你想要的事件,任意你想要的数据。任意对象能够转码为JSON,并且二进制数据也是支持的。

    让我们当用户键入消息,服务器作为chat message事件获取它。index.html中的脚本段落现在应该像如下样子:

     

    <script src="/socket.io/socket.io.js"></script>
    <script src="http://code.jquery.com/jquery-1.11.1.js"></script>
    <script>
      var socket = io();
      $('form').submit(function(){
        socket.emit('chat message', $('#m').val());
        $('#m').val('');
        return false;
      });
    </script>

    And in index.js we print out the chat message event:

    并且在index.js中,我们打印出chatmessage事件:

    io.on('connection', function(socket){
      socket.on('chat message', function(msg){
        console.log('message: ' + msg);
      });
    });

    The result should be like the following :

    结果应该像如下样子:

    blob.png

    blob.png

    Broadcasting

    广播

    The next goal is for us to emit the event from the server to the rest of the users.

    In order to send an event to everyone, Socket.IO gives us the io.emit:

    下一步,我们从服务器发射事件到其他用户.

    为了能够发射一个事件给所有人, Socket.IO 给了我们 io.emit:

    io.emit('some event', { for: 'everyone' });

    If you want to send a message to everyone except for a certain socket, we have the broadcast flag:

    如果你想要发射一个消息给所有人,而非某一个socket,我们有broadcast 标志:

    io.on('connection', function(socket){
      socket.broadcast.emit('hi');
    });

    In this case, for the sake of simplicity we’ll send the message to everyone, including the sender.

    在这个案例中,为了简单的目的,我们发送消息给所有人,包括发送者。

    io.on('connection', function(socket){
      socket.on('chat message', function(msg){
        io.emit('chat message', msg);
      });
    });

    And on the client side when we capture a chat message event we’ll include it in the page. The total client-side JavaScript code now amounts to:

    在客户端,当我们捕获到一个chat message 事件,我们将渲染消息到我们的页面中。所有的客户端JavaScript 代码现在罗列如下:

    <script>
      var socket = io();
      $('form').submit(function(){
        socket.emit('chat message', $('#m').val());
        $('#m').val('');
        return false;
      });
      socket.on('chat message', function(msg){
        $('#messages').append($('<li>').text(msg));
      });
    </script>

    And that completes our chat application, in about 20 lines of code! This is what it looks like:

    现在完成了我们的聊天应用。仅仅只需20行的代码!这个的样子如下:

    blob.png

    Getting this example

    You can find it on GitHub here.

    $ git clone https://github.com/guille/chat-example.git

     

    展开全文
  • 写项目的时候用到了echart图表写k线,刚开始是用计时器,5秒钟请求一次后台,效果实现了,但是用户体验并不好,访问量大的时候,app会卡,开始进行封装,在网上看到了好多大佬写vue-socket.iosocket.io-client,...
  • 安装 Socket.io 官网:http://socket.io/ $ npm install socket.io Socket.io对象的创建 写原生的 JS,搭建一个服务器,server 创建好之后, 创建一个 io 对象 var http = require("http"); var server = ...
  • Socket.io

    2018-10-09 10:02:31
    Socket.io提供了基于事件的实时双向通讯 Browser和WebServer间的实时数据传输是一个很重要的需求,但最早只能通过AJAX轮询方式实现。在WebSocket标准没有推出之前,AJAX轮询是一种可行的方案。 AJAX轮询原理是...
  • Socket.io部署遇到的坑

    万次阅读 2020-06-09 12:02:45
    Socket.io connection error: Invalid namespace. 排查过程 首先检查nginx的配置文件,确保支持socket连接 详:https://www.nginx.com/blog/nginx-nodejs-websockets-socketio/ 配置都没问题后,还是无法正常运转...
  • 使用express创建项目后,安装socket-ionpm install --save socket.io 前端使用 <script src="/socket.io/socket.io.js"></script> <script> var socket = io(); </script> 后端...
  • socket.io 中文手册,socket.io 中文文档转载于:http://www.cnblogs.com/xiezhengcai/p/3956401.html 服务端 io.on(‘connection’,function(socket));//监听客户端连接,回调函数会传递本次连接的...
  • <script src="/socket.io/socket.io.js"></script>
  • egg-socket.io 的使用 官方文档看这里 egg-socket.io 接下来的内容其实与文档里差不多,介意的童鞋略过就好,目前只是简单的引入,下周往后会写复杂些的逻辑,在后面的文章会介绍。 贴下目录结构   1. ...
  • 工具地址:https://github.com/walkor/phpsocket.io phpsocket.io是由workerman根据socket.IO扩展的用于php服务端通讯...socket.io-client客户端socket.io.js 供前端界面初始化io 下面是phpsocket.io操作手册: 安装
  • Socket.io.js

    2021-01-07 14:36:30
    百度socketio进入官网 Socket动态的实时的 引入socket.io.js在介绍->来源->socket.io/client-dist/socket.io.js vue下安装:npm install --save socket.io
  • 项目中需要使用即时通讯模块,决定采用socket.io作为服务端模块,客户端采用socket.io-client-java。在开发过程中,测试环境均正常,但发布到服务器上时客户端却报告如下异常:null,parser error io.socket.engineio...
  • Koa集成Socket.io 步骤 类比之前express项目中的使用,有以下几个步骤 安装:$ cnpm i -S koa-socket 引入: const IO = require( 'koa-socket' ) 实例化:const io = new IO() 接入koa: io.attach( app ) 配置...
  • Socket.io官网http://socket.io/什么是Socket.ioSocket.io是一个实时通信的跨平台的框架Socket.io和WebSocket是什么关系 百度里已经很少有这么正经回答问题的人了 其实只要你有心,你也可以在百度上找到更深奥的...
  • 使用Node.js+socket.io制作服务端,unity+socket.io for unity 制作客户端 ,验证位置同步Demo (Javascript代码可使用Webstorm等IDE进行编写)
  • socket.io的使用

    万次阅读 2020-07-06 09:12:58
    socket.io是对websocket的封装,用于客户端与服务端的相互通讯。官网:https://socket.io/ node服务端 先安装一下socket.io npm install -save socket.io const Koa = require('koa'); const app = new Koa(); ...
  • SOCKET.IO,理解SOCKET.IO

    千次阅读 2017-06-20 14:25:45
    要理解socket.io ,不得不谈谈websocket 在html5之前,因为http协议是无状态的,要实现浏览器与服务器的实时通讯,如果不使用 flash、applet 等浏览器插件的话,就需要定期轮询服务器来获取信息。这造成了一定的...
  • 初步使用socket.io.js

    千次阅读 2020-09-24 16:15:15
    npm install socket.io npm install express 4.粘贴代码 service.js: var http = require("http"); var express = require("express"); //引入express var socketIo = require("socket.io"); //引入socket.io var...
  • 大多数的实时Web应用程序中,服务器和客户端之间的通信发生在响应...安装Socket.IO $npm install socket.io@0.9.16 –save package.json文件$npm install { "name": "socket-express", "version": "0.0.1",
  • <p>I'm trying to connect to <code>wss://streamer.cryptocompare.... <p>Is it just me, or isn't this possible? They're using socket.io as their backend. </div>
  • 遇到的报错信息 http://127.0.0.1:3000/socket.io/?EIO=3&amp;transport=polling&amp;t=ME7dXNi 0 ()***.cn/test被nginx转发到...连接后一直报错, 因为Nginx并没有将socket.io转发到任何端口解决办法一: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,689
精华内容 14,275
热门标签
关键字:

socket.io