nodejs socket.io 无法连接到服务器?

2023-11-21

我整个下午都在盯着node.js 和socket.io 示例,我正在尝试拼凑一个简单的页面,它会告诉我有多少用户连接到了服务器。

我已阅读以下文档http://socket.io/以及这里的一些教程/问题准确地概述了我正在尝试做的事情。我也发现了创建简单的 Node js 服务器和客户端这对我没有帮助。

版本信息:

Node.js - 0.6.15
表达 - 3.0.0alpha1
socket.io - 0.9.5(socket.io-client 是相同版本,但是找不到资源...请参阅评论)
ejs-0.7.1

这是我的服务器代码:

var express = require('express'),
    config = {
        port: 4000,
        hostname: 'localhost'
    };

var server = module.exports = express.createServer();
    /* server configuration */
    server.use(express.cookieParser('keyboard unicorn'));
    server.use(express.bodyParser());
    server.use(express.methodOverride());
    server.use(express.session({ secret: 'keyboard unicorn' }));
    server.engine('.html', require('ejs').__express);
    server.set('views', __dirname + '/lib/views');
    server.set('view options', { layout: false });
    server.set('view engine', 'html');
    server.use(server.router);
    server.use('/', express.static(__dirname + '/lib/assets'));

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

var connections = { 'length': 0 };

io.sockets.on('connection', function(socket) {
    socket.__fd = socket.fd;
    connections[socket.__fd]=socket.remoteAddress;
    ++connections.length;
    console.log('user connected! There are a total of ' + connections.length + ' users online.');
    return socket.on('disconnect',function(){
        delete conns[socket.__fd];
        --connections.length;
        console.log('user disconnected! There are a total of ' + connections.length + ' users remaining online.');
    });
});

server.get('/', function( req, res ) {
    res.render('index', {
        'page_title': 'sample application',
        'number_of_connections': connections.length
    });
});

server.listen(config.port, config.hostname);

这是我的客户端代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title><%= page_title %></title>
</head>
<body>
<div>There is a total of <%= number_of_connections %> user(s) connected.</div>
<script src="http://cdn.socket.io/stable/socket.io.js"></script>
<script type="text/javascript">
var socket = new io.Socket('localhost',{'port':4000});
socket.connect();
socket.on('connect', function() {
    console.log('connected');
});
</script>
</body>
</html>

这是我运行服务器并与客户端连接时发生的情况。

$ node server.js
   info  - socket.io started

然后,当我在网络浏览器上导航到 localhost:4000 时,我会看到带有“0”(连接数)的页面。另外,我在服务器终端中看不到任何内容(on.('connection' 从未被命中)。

在客户端上,一两秒后,我开始出现大量错误(如果我让控制台打开几秒钟,页面就会崩溃),请参见下图:

enter image description here

请提供有关从哪里开始调试的任何帮助,我们将不胜感激!我只想启动并运行这个基本示例,以便我可以开始使用/理解 Nodejs 和 socket.io!


问题是因为 Express 现在是一个函数。

您需要执行以下操作:

var express = require('express');
var app = express();
var server = app.listen(3000);

var io = require('socket.io').listen(server);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nodejs socket.io 无法连接到服务器? 的相关文章

  • 将 jQuery 集成到电子应用程序中

    我正在尝试将 jquery 功能添加到用 Electron 编写的桌面应用程序中 使用电子快速启动存储库 我将下载的 jquery 文件添加到main html像这样的文件 or so 然后在index js我正在文件中添加代码create
  • 是否可以为 NodeJS 应用程序设置基本 URL?

    我希望能够在同一域下托管多个 NodeJS 应用程序 而不使用子域 例如 google com reader 而不是 images google com 问题是我总是输入网址的第一部分 例如Express NodeJS 中的 reader
  • 在spawn中使用两个命令(使用管道|)

    我正在内存中将文档转换为 pdf unoconv 并在终端中打印 pdftotext unoconv f pdf stdout sample doc pdftotext layout enc UTF 8 out txt 工作中 现在我想使用
  • 访问 Node.js 全局模块

    npm 文档是这样说的 如果您正在安装想要在程序中使用的东西 请使用 require whatever 然后将其安装在本地项目的根目录下 如果您要安装要在 shell 中使用的东西 请在命令行或 某些东西 全局安装它 以便它的二进制文件最终
  • 具有匹配模式的 ioredis 密钥

    我想用键匹配模式 LOGIN 搜索 Redis 数据库 我在我的应用程序中使用 ioredis 昨天我搜索了整个网络 我得到了一些执行这项工作的选项 如下所示 KEYS 扫描流 Issue import Redis from ioredis
  • 具有独立 Node.js 服务器的虚拟主机

    目前有没有一种方法可以使用node js服务器进行虚拟托管 即在一个IP下托管多个域 当然 你可以使用bouncy https github com substack bouncy or 节点 http 代理 https github co
  • MongoDB,从数组中删除对象

    Doc id 5150a1199fac0e6910000002 name some name items id 23 name item name 23 id 24 name item name 24 有没有办法从数组中提取特定对象 IE
  • 如何在 Jenkins 服务器上运行 Jest 测试

    我正在尝试运行我的Jest https facebook github io jest 在 Jenkins 部署期间进行测试 如果我 ssh 进入服务器 我可以 sudo 进入 Jenkins 用户并从工作区成功运行测试 但是 当我尝试从
  • Nodejs - 处理和发送多部分请求,

    我的应用程序在 Nodejs 服务器上运行 Node Js 还充当来自应用程序的请求的中间件 代理 因此 从浏览器开始 所有 REST 调用都会转到 NodeJs 然后转到 Java API 我发现处理多部分表单数据的请求时出现问题 我在
  • 如何使用 Web 套接字和 Angular CLI 设置代理

    我有一个使用 Angular CLI 构建的简单 Web 应用程序 我希望它使用网络套接字与后端通信 我已经编写了后端 并使用一个简单的 index html 页面进行了测试 服务器可以在套接字上发送和接收该页面 在我的 angular c
  • 语法错误:elasticdump 中的exports.runInThisContext (vm.js:53:16) 处出现意外标记 {

    我试图使用elasticdump 将elasticsearch 数据从一台服务器移动到另一台服务器 当我给予 elasticdump input http 192 168 0 122 9200 my index output http lo
  • 有人在node/socket.io 中成功实现了动态命名空间吗?

    含义 用户对应用程序进行身份验证 gt 应用程序设置socket io连接的命名空间 http www socketioserver com NAMESPACE 并且节点服务器相应地响应无需针对特定名称空间进行硬编码 到那个特定的命名空间
  • nodejs mocha suite 未定义错误

    我正在尝试使用摩卡运行一些测试 但似乎无法克服这个错误 E tdd nodejs cart gt mocha cart test js node js 201 throw e process nextTick error or err Re
  • express 或express-generator:我需要两者吗?

    只是探索 Node js 并遇到了 Express 在 npm 存储库站点上https www npmjs com package express https www npmjs com package express它明确指出安装是 np
  • Nodejs 一个接一个地运行异步函数

    我是 JS nodejs 的新手 所以如果我不能提出切中要害的问题 请原谅我 所以基本上 如果我有两个异步函数 async function init async function main 如何确保在 init 完成其异步请求后调用 ma
  • npm install 命令下载所需包的源位置是什么?

    我试图获取命令 npm install 尝试连接的源位置 URL 并根据 package json 文件获取要下载的依赖包 并将其放置在本地框中 从下面提到的网址 http www tutorialspoint com nodejs nod
  • Node.js 检测两个猫鼬查找何时完成

    我正在尝试使用自动完成功能初始化两个输入library https www devbridge com sourcery components jquery autocomplete 当我加载页面时 我将触发 Ajax 来初始化两个输入文本
  • 如何清除NPM的https代理设置?

    如何清除NPM之前的ssl代理设置 好吧 我搜索了很多 但我得到的所有帖子主要是关于如何set公司网络中的代理 我尝试将代理设置为空 npm config set http proxy npm config set https proxy
  • 为 Node.js 客户端应用程序保留 Firebase 用户

    我正在使用 Firebase 构建 Node js 命令行界面 CLI 用于与后端进行身份验证 我想避免让用户每次运行命令时都输入密码 相反 我想实现一个 登录 流程 将凭证保留到文件系统 该凭证可用于后续的无密码身份验证 直到用户 注销
  • 带有 npm 启动脚本的 Nodejs 应用程序

    我对nodejs很陌生 在我的docker化环境中 我想为nodejs应用程序提供appdynamics支持 这要求每个应用程序都要求将以下内容作为其应用程序的第一行 require appdynamics profile controll

随机推荐

  • 无法访问关闭的流

    我正在尝试使用缓存应用程序块缓存一些图像 这些图像需要很长时间才能渲染 BitmapSource bitmapSource some bitmap source already created cache Caching Applicati
  • Pandas DataFrame 通过迭代进行切片

    我想对具有多个切片索引的切片 DataFrame 执行一些操作 模式是 df iloc 0 24 df iloc 24 48 df iloc 48 72 等 按照步骤 24 进行操作 我如何迭代它而不需要每次都手动设置它 更像 df ilo
  • HTML5 自定义数据属性在 IE 6 中“有效”吗?

    自定义数据属性 http dev w3 org html5 spec Overview html embedding custom non visible data 当我说 工作 时 我的意思是 如果我有这样的 HTML div 将执行以下
  • 可以同时使用AVCaptureVideoDataOutput和AVCaptureMovieFileOutput吗?

    我想用我的代码同时录制视频和抓取帧 我在用AVCaptureVideoDataOutput用于抓取框架和AVCaptureMovieFileOutput用于视频录制 但在同时工作但单独工作时无法工作并收到错误代码 12780 我搜索了这个问
  • 当新的视图控制器被推送时,如何通过画外音读出标题?

    在设置应用程序中 如果我双击 常规 行 它推动通用视图控制器 然后它说 一般的 当前视图控制器的名称 Then 设置 后退按钮 所选项目的名称 但是在我的应用程序中带有自定义self navigaitonItem titleView它只说
  • 是否可以使用 Doxygen、Sandcastle 或其他文档生成器来记录 XML?

    我目前正在使用 Sandcastle Doxygen 和 JavaDoc 为我编写的代码生成文档 是否可以使用这些包来记录 XML 模式 如果没有 是否有任何 最好是免费的 软件包可以做到这一点 我可以自己编写文档作为 Doxygen 或
  • 下拉列表所选项目文本始终返回第一个项目文本

    我正在使用此代码从数据库填充下拉列表 public void fillcountry BL obj new BL DataSet ds obj dss select from Country drplistcountry DataSourc
  • 如何在DataGridViewComboBoxColumn中设置SelectedIndex?

    我正在使用 datagridview 因为我正在使用 datagridviewcomboboxcolumn 组合框列正在显示文本 但问题是我想默认选择组合框列的第一项 我该怎么做 DataGridViewComboBoxColumn dgv
  • android 放大后如何画圆

    我正在使用图像视图并使用layerDrawable 绘制覆盖图像 我使用了两个位图 original 和 myBitmap 缩放后 我无法在正确的位置绘制圆圈 它是在不同的位置绘制的 这是我正在使用的代码 ImageView view Im
  • 为什么Hibernate无法解析STRING?

    我刚刚下载了新版本的 Hibernate 4 0 1 最终版本 很奇怪的是 当我输入以下代码时 Hibernate STRING Eclipse IDE 显示 STRING 关键字错误 我确信我的构建路径中有 hibernate jar 并
  • 分析图像的颜色

    我剪掉了部分图像 并通过 12 个轨迹栏定义了 2 个颜色范围 H S L 我还有一个 精度 速度 滑块 范围从 1 到 10 我需要分析图像有多少像素属于每个指定的颜色范围 根据精度 速度滑块 我跳过一些行 像素 它工作得很好 但太慢了
  • PHP 中的 == 运算符具有传递性吗?

    在 JavaScript 中 运算符不一定是传递的 js gt 0 0 true js gt 0 true js gt 0 false PHP 中也是这样吗 你能给个例子吗 No the 运算符不具有传递性 完全相同的场景在 PHP 中给出
  • 将字符串拆分为基于单词长度的列表 C#

    我有一串用空格分隔的单词 如何根据单词长度将字符串拆分为单词列表 Example input aa aaa aaaa bb bbb bbbb cc ccc cccc cccc bbb bb aa output List 1 aa bb cc
  • 为操作编写基于 Python 的自定义梯度函数? (没有 C++ 实现)

    我正在尝试为 my op 编写一个自定义梯度函数 为了示例的目的 该函数仅包含对 tf identity 的调用 理想情况下 它可以是任何图形 import tensorflow as tf from tensorflow python f
  • 如何使用 R 允许用户进行多个输入?

    例如 如果我需要用户指定矩阵的行数和列数 提示 行数 用户输入 数字 我需要 R 等待 输入 然后将 一个数字 保存到变量v1中 下一个 提示 列数 用户输入 另一个号码 同时将 另一个数字 保存到变量v2中 最后 我将有两个变量 v1 v
  • DENSE_RANK 根据特定顺序

    您好 我有一个数据表 我想根据排序的日期顺序输出从第一组名称开始的名称的密集排名 例如 DROP TABLE MyTable SELECT INTO MyTable FROM VALUES 2015 12 23 ccc 2015 12 21
  • 抑制 Java 中已弃用的导入警告

    在 Java 中 如果导入已弃用的类 import SomeDeprecatedClass 您会收到此警告 The type SomeDeprecatedClass is deprecated 有没有办法抑制这个警告 为了避免警告 做not
  • 如何在express Node js中获取删除请求的参数

    我对nodejs比较陌生 如何获取Delete请求传递的value参数 我正在使用节点express js 感谢advs 您可以使用 req body 来获取您发送的值 eg router delete test function req
  • HTML Canvas - 圆圈周围的虚线描边

    我确实知道在画布上渲染点划线没有原生支持 但我已经看到人们能够为此提供支持的聪明方法 我想知道是否有任何方法可以翻译它以允许在形状 特别是圆形 周围渲染点状笔划 最简单的方法使用context setLineDash ctx setLine
  • nodejs socket.io 无法连接到服务器?

    我整个下午都在盯着node js 和socket io 示例 我正在尝试拼凑一个简单的页面 它会告诉我有多少用户连接到了服务器 我已阅读以下文档http socket io 以及这里的一些教程 问题准确地概述了我正在尝试做的事情 我也发现了