Tag: socket.io

在NodeJS中的Socket.io

我在一个NodeJS应用程序中使用socket.io 。 socket.io页面位于localhost:8081/socket.io/ 。 不过,我想在localhost:8081/hola/socket.io/ 。 那可能吗? var express = require("express"); var app = express(); var server = require("http").Server(app); var io = require("socket.io")(server); //some code here… server.listen(8081, function() { console.log("Server running at http://localhost:8081/"); });

关于nodejs server.listen()

我刚开始学习nodejs服务器和websockets。 说我有这个服务器写在JavaScript使用socket.io和快递。 var app = require('express')(), server = require('http').Server(app), io = require('socket.io')(server), port = process.env.PORT || 8080; 有什么区别: server.listen(port, function(){ console.log("listening port " + port); }); 和 server.listen(port); console.log("listening port " + port); 显然他们工作一样。 那么实际上server.listen()是做什么的?

如何从客户端socket.emit serverside socket.io捕获命名空间的来源

如果你有一个客户端在一个特定的命名空间/房间执行一个socket.emit,你在服务器上做一个“套接字”如何能捕获命名空间的起源作为一个string? IE: 客户: socket.emit('foo', $('#bar').val()); return false; 服务器: socket on('foo', function (foo) { var usersubmitteddata = foo var namespaceorigin = ??? });

为什么不发挥sockets内工作

我正试图发送一个事件套接字内套接字为例 io.on('connection', function (socket) { socket.emit("connected", {msg: 1}); socket.on('funcb', function (data) { console.log('funca sent following data'); console.log(data); }); socket.on('funca', function (data) { console.log(data); socket.emit('funcb', data); }); }); funca从客户端/浏览器调用,它尝试调用funcb但func b不工作任何想法?

用点击事件移动图像

我正在尝试一个使用Node.js和Socket.io的拔河比赛,我很困惑我应该如何继续。 我的想法是如果左键单击,移动一个图像,如果单击右键单击右。 要真正让图像移动,我假设我需要在app.js的函数。 我应该如何去实施呢? 我有我的server.js文件设置像这样: socket.on('tug', function (side) { if(side == "left"){ console.log("left button clicked"); leftPos++; rightPos–; pos[0] = leftPos; pos[1] = rightPos; console.log(pos); } else if (side == "right"){ console.log("right button clicked"); leftPos–; rightPos++; pos[0] = leftPos; pos[1] = rightPos; console.log(pos); } }); 然后在我的app.js我有这个: $(document).ready(function(){ $("#left").on('click', function(){ socket.emit('tug', 'left'); }); $("#right").on('click', function(){ socket.emit('tug', 'right'); […]

node.js,socket.io移动

我正在使用node.js和socket.io创build一个4人游戏。 在我的游戏中,每个玩家都有自己的坐标,除了移动之外,一切都很好 我在移动angular色时遇到了麻烦。 我不知道我做错了什么。 我会很感激任何帮助。 服务器端: socket.on('move', function(data) { var w = data["dir"]; var x = data["x"]; var y = data["y"]; if(w == "down") y += 5; if(w == "up") y -= 5; if(w == "left") x -= 5; if(w == "right") x += 5; console.log(y); io.sockets.emit("_movement",{ "X" : x, "Y" : y}); }); 客户端: […]

使用Socket.io的Node.js应用程序在OpenShift托pipe上提供了“意外的响应代码:400”

我有一个本地运行良好的Node.js应用程序,但是当我把它推到OpenShift时,它在开发控制台中给了我这个错误: WebSocket连接到'ws://myapp-mydomain.rhcloud.com/socket.io/?EIO = 3&transport = websocket&sid = mpKjro8KjQ5dIg0GAAAE'失败:WebSocket握手期间出错:意外的响应代码:400 这是一个小型的多人游戏,你和任何其他连接的玩家都可以四处移动,并可以看到对方的移动等。我使用Node和socket.io来获取玩家位置,并将新坐标发送给其他玩家。当我在OpenShift上托pipe时,它给了我上面的错误。 奇怪的是,它几乎可以工作,即你可以看到其他玩家四处移动,除非它非常缓慢和缓慢。 同样的应用程序在Scalingo托pipe上工作得很好,所以它必须是一个OpenShift的东西。 这是我启动socket.io的客户端代码: <script src="/socket.io/socket.io.js"></script> <script> var socket = io(); </script> 和服务器: var express = require('express'); var app = express(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.sendFile('index.html'); }); this.ipaddress = process.env.OPENSHIFT_NODEJS_IP; this.port = process.env.OPENSHIFT_NODEJS_PORT || 8000; http.listen( port, ipaddress, function(){ console.log('listening […]

如何在执行事件时创builddynamic的androidpath对象?

我正在尝试使用基于Socket.io的Node.js服务器搭载Android构build一个实时协作绘图板应用程序。 我已经使用了Android端的Socket.io Java客户端。 我能够绘制出一条path,并将协调发送到服务器,并从服务器接近实时地获取广播。 整个概念几乎完成,但是我陷入了一个大问题。 我在Android是一个完整的新手,这实际上是我的第一个Android应用程序,我完全是为了学习目的而创build的。 所以,问题是,在每个与服务器的新连接上,我需要一个新的Path对象。 现在我的单path对象发生了什么,当有响应来自服务器,我试图绘制path,它使用相同的path对象,因此,join我画线,与线坐标我从服务器收到的。 此问题导致需要为每个到服务器的新连接创build一个新的Path对象。 请注意,通过一个新的连接,我的意思是,通过打开应用程序连接到服务器的新设备。 这个新人,你可以参与协作绘图的经验,至less,这就是我想要build立的。 我认为会工作的是,在每一个新的连接,我会创build一个新的path对象,并把它放在一个ArrayList,然后根据需要引用相应的path对象。 但是,然后我发现了一个新的问题,即在onDraw()覆盖的方法内实际创build视图时,path被初始化。 所以,我的最后一个问题是: 在Android中,如何在执行事件时创builddynamicpath对象? 这是自定义View package com.example.thisisppn.drawtogether; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import com.github.nkzawa.emitter.Emitter; import com.github.nkzawa.socketio.client.Socket; import com.github.nkzawa.socketio.client.IO; import org.json.JSONException; import org.json.JSONObject; import java.net.URISyntaxException; public class MainDrawingView extends View […]

为什么许多websocket库实现自己的应用程序级别的心跳?

例如, socket.io具有pingInterval和pingTimeout设置,hapi的nes具有相似的心跳间隔设置。 这表面上是为了防止像过度热心的代理这样的任何中间体closures似乎是不活跃的连接。 但ping / pong框架是websocket协议的一部分,并且似乎达到了相同的目的。 那么为什么websocket库的实现者在应用层增加了另一个ping / pong层呢? 如果我被推测,那么万一websocket服务器正在处理一个不响应/支持websocket协议级别ping-pong的客户端。

更新npm模块,但在我的控制台窗口中显示不同的旧版本

我想安装最新版本的socket.io,最新的版本似乎是1.45。 socket.io下载 要做到这一点,我只需input以下命令。 npm install socket.io 但是,当我检查我的笔记本电脑上安装的模块,socket.io的版本没有改变,如下所示。 YANAGISAWAYUMA-no-MacBook-Pro:~ yanagisawa_yuma$ npm list –depth=0 yanagisawa_yuma@0.0.0 /Users/yanagisawa_yuma ├── ar-drone@0.3.3 extraneous (git://github.com/felixge/node-ar-drone.git#228bd4573e765bed3861f259ce7e66fcace15f43) ├── express@4.9.0 ├── gulp@3.9.0 ├── node@0.0.0 ├── node-osc@1.1.0 extraneous ├── node-static@0.7.3 ├── socket.io@1.1.0 └── static@2.0.0 我错过了什么?