Articles of socket.io

Heroku的应用程序与socket.io崩溃

应用程序,一个旨在与Unity客户端通信的API服务器工作得很好,直到我添加了套接字。 使用chrome扩展socket.iotesting仪手动testingsocket.io,certificate它在本地机器上运行得非常好。 现在我已经将它部署到heroku,它不起作用。 它立即崩溃。 通常情况下,对这个问题的答案都是关于没有被正确设置的端口,但在这种情况下,我已经把端口设置为process.env.PORT,所以不应该有任何问题。 我的应用程序工作得很好,直到我添加了socket.io。 这是我的基本服务器文件: import express from "express" import mongoose from "mongoose" import http from "http" import config from "./config/index.js" mongoose.Promise = global.Promise // mongo mongoose.connect(config.mongo.uri) mongoose.connection.on("error", function(err) { console.error("MongoDB services error: " + err) }) // server let app = express() let server = http.createServer(app) let socketio = require("socket.io")(server) require("./socketio").default(socketio) require("./express").default(app) […]

如何在同一个LAN上findSocket.IO服务器?

我正在开发一个连接同一networking上的设备的应用程序。 任何设备都可以作为服务器,我希望客户端能够自动find服务器,而无需用户手动input服务器的IP地址。 这是我打算这样做的: find客户端的IP,例如192.168.0.2 循环192.168.0。(0-> 255) 尝试连接所有这些IP,直到连接成功 这是正确的方式吗? 我可以做得更快吗? 在同一networking上的IP始终在xxx(0-> 255)范围内? 如果这是相关性,我正在使用Java和JavaScript(Node.js)。

我试图通过setInterval()重新渲染我的帕格模板。 这可能吗?

我试图通过setInterval()重新渲染我的帕格模板。 我试图让一个页面显示来自MySQL服务器的实时数据。 我可以获取数据到页面,但我不知道如何更新显示的数据,而不刷新整个页面。 我试图实现AJAX,并试图通过socket.io做到这一点,但没有发送数据到两个尝试哈巴狗模板。 Server.js var express = require('express'); var app = express(); var http = require('http'); var server = http.createServer(app); var pug = require('pug'); var io = require('socket.io').listen(server); var clients = []; var outsideData = require('./public/data.js'); app.set('views', __dirname + '/views'); app.set('view engine', 'pug'); app.use(express.static(__dirname + '/public')); app.get('/', function(req, res) { res.render('index.pug', { data: outsideData.getData() […]

socket.io – io.sockets.adapter对象?

我正在尝试使用socket.io并尝试构build一个多房间聊天应用程序。 我遵循的指南已过时使用前1.0.0套接字。 我试图find一个给定的房间连接的客户端列表。 谷歌search显示,我必须使用适配器。 但是,我找不到任何地方的文档。 我在git-hub文档中search它,但search没有返回适配器上的任何信息。 https://github.com/socketio/socket.io-client/blob/master/docs/API.md 有人能指出我正确的方向,在哪里我可以阅读更多关于适配器和相关的方法吗? 另外,如果你可以提供最新的socket.io文件,我将不胜感激。 谢谢。

如何确保所有玩家在socket.io问答游戏中同时显示问题?

我正在开发一个在客户端浏览器中运行的多人测验游戏。 它在服务器端使用socket.io和node.js,在客户端使用javascript。 从数据库中挑选问题并同时发送给每个玩家,但是较慢的互联网连接可能意味着他们将在不同的时间接收这些问题。 可能的scheme 发送每个问题的时间戳,告诉浏览器何时显示问题。 时间戳将是(发送时间+ x秒)来解决连接延迟。 但是,如果客户知道如何使用控制台,他们可以在问题到达时立即拦截问题,并在所有其他玩家之前看到。 那么我怎么能确保没有一个玩家有不公平的优势?

Angular不会在HTML中显示我的数组结果

我得到了我的angular度的问题…我目前正在与套接字io的一个简单的聊天广播,但为什么我的数组对象不会显示在套接字io捕获发射后的HTML 这是我的index.html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body ng-app='BaseModule'> <div ng-controller="ChatController"> <input type='number' name='sender' ng-model='sender' /> <input type='number' name='to' ng-model='to' /> <textarea name='message' ng-model='message'></textarea> <button type='button' ng-click='sendMessage()'>send it</button> <pre>{{ conversation }}</pre> </div> </body> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.7.3/socket.io.js"></script> <script type="text/javascript" src="angular.min.js"></script> <script type="text/javascript" src="base.js"></script> <script></script> </html> 这里是我的base.js的代码 var app = angular.module('BaseModule', []); app.run(function($rootScope) […]

电子 – 独立节点js服务器

我试图用电子来进行问答游戏,客户可以在他们的手机上打开localhost:8888上的测验页面localhost:8888 。 问题是,你可以使用电子制作一个web服务器应用程序,并且运送encryption的server.js(express.js脚本),安装我的应用程序的用户不需要安装node.js? 我的应用程序可能是这样的: |—————————–| |QuizApp Window _ [] x| |—————————–| |Open 192.168.1.1:8888 | |to start game on your mobile | | | ——————————-

我的命令在节点js中的每个刷新页面重复

我在我的项目中使用节点js与expression框架和socket.io。 当我在浏览器(这个地址: http:// localhost:3001 /testing )加载testing页时,每一件事情都很好,并在服务器日志中打印“ 用户连接 ”,但当我再次刷新页面打印该消息两次和另一个刷新打印该消息三次,每刷新一次重复该消息。 我的代码有什么问题? 谢谢。 test.js var express = require('express'); var router = express.Router(); var io = require('../app'); router.get('/', function(req, res, next) { io.on('connection', function(socket){ console.log('a user connected'); }); res.render('test', { title: 'test' }); }); module.exports = router; app.js var express = require('express'); var path = require('path'); var favicon = […]

带有Express的Socket.IO不能使用https(Apache2 Ubuntu16.04)

我不是很有经验的SSL证书,我跳了一个人可以帮助我找出我做错了什么。 我正在尝试使用端口443(从中服务器客户端应用程序而不是NodeJS / Express / Socket.io应用程序)启用了SSL的Apache2来托pipe带有自己端口(*:1729)的NodeJS应用程序。 当我用http设置Express时,它工作正常,我的客户端应用程序没有错误地与NodeJS应用程序通信,但是当我使用https这样的express时: this.express = require('express'); this.app = this.express(); var https = require('https'); var fs = require('fs'); var sslPath = '/etc/letsencrypt/live/yourdomain.example.com/'; var options = { key: fs.readFileSync(sslPath + 'privkey.pem'), cert: fs.readFileSync(sslPath + 'fullchain.pem') }; this.server = https.createServer(options, this.app); this.io = require('socket.io').listen(this.server); this.server.listen(1729); 当我的客户端应用程序尝试连接时,我得到这个错误: node: ../src/util-inl.h:196: TypeName* node::Unwrap(v8::Local<v8::Object>) [with TypeName = node::TLSWrap]: […]

Nodejs错误:读取ECONNRESET

我在我的一个应用程序中使用Nodejs进行web套接字通信。 这个应用程序定期发送用户数据到AWS dynamodb。 我得到了很多新的文物更改与下面stacktace: Error: read ECONNRESET at exports._errnoException (util.js:856:11) at TLSWrap.onread (net.js:545:26) / 我只是想了解为什么发生这个TLSWrap错误。 提前致谢