我在哪里可以找到 socket.io 1.0的工作示例

Where can I find a working example of socket.io 1.0?

本文关键字:工作 io socket 在哪里      更新时间:2023-09-26

在哪里可以找到 socket.io 1.0与Express 3.0结合使用的工作示例?目前的问题是它在我的索引中找不到/socket.io/socket.io.js.html。

var express = require('express')
var http = require('http')
var app = express()
app.configure(function () {
    app.set('port', process.env.PORT || 80);
});

// setup express server
var serv = http.Server(app);
// setup socket io 
var io = require('socket.io')(serv);
app.get('/', function (req, res) {
    res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
});
serv.listen(app.get('port'), function () {
    console.log("Express server listening on port " + app.get('port'));
});

这是我的索引.html

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Socket Example</title>
    <script src="/socket.io/socket.io.js"></script>
    <script>
        var socket = io.connect('/');
        socket.on('news', function (data) {
            console.log(data);
            socket.emit('my other event', { my: 'data' });
        });
    </script>
</head>
<body>
    <b>Socket IO</b>
</body>

这是我在包中的内容.json

{
  "name": "socketio",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
      "express": "3.0",
      "socket.io": "LearnBoost/socket.io"
  },
  "scripts": {
    "start": "node app.js"
  }
}

你面临的问题是你决定你和未完成的,未完成的 socket.io 1.0版本。它还没有正式发布(或者它会在 npm 中)。我建议你坚持使用 Socket.IO 的"稳定"版本。

如果你想使用 Socket.IO 1.0,因为新的 engine.io 传输系统,我建议你看看Primus https://github.com/primus/primus,它用一个通用的接口和一个插件系统包装了 socket.io、engine.io、sockjs等。您可以使用此插件系统通过 engine.io 转换器和一些插件轻松构建自己的 Socket.IO 1.0。下面是使用 Primus + Engine.IO 创建工作克隆的示例 https://gist.github.com/3rd-Eden/6113494 Socket.IO

您需要将连接/快速应用程序包装在节点 http 中。服务器。

app.listen() 方法是一种方便的方法,并返回服务器:

var io = require('socket.io');
var app = connect();
var server = app.listen(80);
io.listen(server);

或以下内容是等效的:

var io = require('socket.io');
var http = require('http');
var app = connect();
var server = http.createServer(app);
server.listen(80);
io.listen(server);

Connect 2/Express 3 可以在不启动 http.server 的情况下创建一个应用程序,因此您应该组织它以启动或发出。如果没有其他选择,这应该会让你回到正轨。

// where this = express();
this.server = this.listen(this.config.port);
console.log('[ ' + this.constants.name + ' ] worker listening on port ' + this.config.port);
this.emit('listen', this.server);

对于带有 server.io 和节点的表达式 3:REF

var app = require('express')()
  , server = require('http').createServer(app)
  , io = require('socket.io').listen(server);

您可以查看此存储库,其中包含完整的 socket.io v1.0 实现。不过,它与快速 v4.0 一起。

https://github.com/theoctal/livenote