问题标签 [socket.io-1.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3167 浏览

node.js - 在断开连接事件中获取客户端当前所在的房间列表

我正在尝试查找客户端当前在断开连接事件中所在的房间列表(关闭浏览器/重新加载页面/互联网连接已断开)。

我需要它的原因如下:用户进入了几个房间。然后其他人也做了同样的事情。然后他关闭浏览器选项卡。我想通知他离开的房间里的所有人。

所以我需要在“断开连接”事件中做一些事情。


我已经尝试了两种方法,发现它们都是错误的:

1)遍历adapter.rooms.

这是错误的,因为适配器房间有所有房间。不仅是我的客户所在的房间。

2)经过client.rooms。这将返回客户端所在房间的正确列表,但在断开连接事件时不返回。断开连接时,此列表已为空[]

那么我该怎么做呢?在撰写本文时,我正在使用最新的socket.io:1.1.0

0 投票
0 回答
607 浏览

node.js - Node.js Redis 事务:单连接并发监视

使用 nodejs、socket.io 和 redis 事务。
想知道这段代码会发生什么(虚拟代码)

客户端 1 发送事件 'setSomeKey':
-> redis watch someKey
-> redis get someKey 并等待回复

客户端 2 发送事件 'setSomeStuff'
-> redis watch someStuff
-> redis set someStuff & 等待回复

客户端 1:-> 接收 'someKey' 并尝试 multi..exec:
=> 由 client2 设置的 'someStuff' 上的监视会影响 multi exec 吗?

换句话说,在使用 MONITOR 观看 redis 时是否会发生这种情况:
- watch someKey
- get someKey
- watch someStuff
- set someStuff
- multi
- exec => FAIL 因为“watch someStuff”在 get 和 multi..exec 之间执行了变化回调?

0 投票
4 回答
13393 浏览

socket.io - 如何让 socket.io 为子目录运行

我有一个正在运行的代理,它只访问我的 node.js 服务器的路径/mysubdir 我如何为这种情况配置 socket.io?

在我的客户端代码中,我尝试过:

但后来我注意到底层的socket.io(或engine.io)http请求正在命中

我要他们打

我必须在客户端和服务器上配置什么吗?

0 投票
2 回答
959 浏览

javascript - 遍历 socket.io v1 中的所有套接字

k 所以我现在尝试了 1 小时,但它仍然无法正常工作

我想获取每个 socket.io 用户的 id,所以我尝试了这个:

然后

但它仍然未定义。怎么修?谢谢

它看起来很简单,但就是不工作

还尝试了 console.log(socket_list) 并且它有效

0 投票
1 回答
550 浏览

angularjs - 套接字始终未经过身份验证

我刚刚配置了我的 express (4.x) + socket.io(1.x) + angular.js 应用程序,我的应用程序看起来像

表达

Socket.io 配置

一切正常,会话存储在 redis 中,我的快速应用程序说req.isAutheticated() = true

但:

logged_in = false

我的角度代码看起来像(getCookie('connect.sid')具有正确的值)

我的 redis 商店看起来像

这是我的调试日志。

未找到会话,{ logged_in: false }. 并在我的消息中onAuthorizeFail= No session found

我无法弄清楚,问题出在哪里......有人可以帮助我吗?

我只想看看我的用户是否经过身份验证

0 投票
1 回答
919 浏览

php - 集成node.js、socket.io和php网页

我打算将我的 php 网页与 node.js 和 socket.io 集成。客户端可以连接到 node.js 服务器文件,但 socket.emit 函数在客户端到服务器或返回时不起作用。这是我的 nodeClient.js 文件:

这是 nodeServer.js 文件:

ajax 用于将数据存储在 mysql 中。每个连接的客户端都被识别为“新客户端!”。但是客户端和服务器之间没有消息通信。我的代码中可能有什么问题。

0 投票
1 回答
284 浏览

vba - 敌对网络环境中的 Socket.io 房间?

我对客户的网络环境有一个非常令人沮丧的问题,我希望有人能帮我解决这个问题......

他们有一个应用程序,目前完全在 VBA for Excel 中编写。(不笑。)

我帮助他们改进产品和用户体验的一部分涉及将他们的 UI 从 VBA 表单元素转换为单个 WebBrowser 元素,该元素包含一个丰富的 Web 应用程序,该应用程序在 Excel 和他们的服务器之间进行通信。它主要通过 socket.io 服务器/连接来实现。

当用户登录时,会与套接字服务器上的房间建立连接。

最初的“所有者”称为:

后续“参与者”称:

这一切都运行得非常好,直到我们达到他们的 VBA 代码会锁定所有内容导致套接字连接丢失的地步。当客户端浮出水面时,它会强制 VBA 引起暂停(持续时间从 20 秒到 3 分钟不等),我尝试通过将 onclick 传递给触发脚本重新加入的 HTML 元素再次加入房间。奇怪的是,这行不通。但是,如果我等待几秒钟并手动单击该对象,它确实会重新加入房间。是的,从 Excel 文件中收到了点击...我们看到了到套接字服务器的消息,但它不允许该调用重新加入房间。

这就是使调试变得非常困难的原因。无法在 VBA 的 WebBrowser 对象中看到控制台,因此我使用 weinre 作为远程调试器,但是 a)它似乎不会将日志和错误输出到控制台,除非我触发它们在控制台中发生,并且 b)当 socket.io 断开连接时,它会失去连接,而我已经死在水中了。

现在,为了完整起见,如果我删除 .join() 调用和 .to() 调用,一切都会像我们期望的那样工作,它会减去所有被写入大型非私人房间的消息。所以这是重新加入房间的问题。

作为 StackOverflow 的长期用户,我知道一个包含很少代码的冗长问题是不受欢迎的,但这种设置绝对没有什么特别之处(这可能是问题的一部分)。它只是简单的发射和广播(来自客户端)。我很乐意根据后续问题填写任何内容。

0 投票
3 回答
345 浏览

javascript - What role does Socket.IO have with Node.js

I'm fairly new to the world of JS and its abundance of libraries. I'm looking to get into a project that involves network communication (sockets) between clients and a server. In a world with tons of libraries, I cannot make a decision as to which to use. I'm looking for something that will bring efficiency and stability.

I've been told that Node.js is like the middleman between you, as the developer, and Socket.IO. I've been told it's a huge framework that you may not use at least half of. I've been told that to maximize efficiency, you're better off using Socket.IO to make your own functionalities. I've done some research on my own and found that Socket.IO NEEDS Node.js and Node.js DOESN'T NEED Socket.IO. Which is completely opposite of what I was told. Then I find that most developers use both Socket.IO and Node.js at the same time?

Like I said, I'm fairly new, but I cannot find the right resources that would help me accomplish a websocket communication between a client and a server with maximum efficiency, or at least explain the difference between Socket.IO and Node.js. If anyone here could, please let me know! I would greatly appreciate it.

0 投票
0 回答
92 浏览

socket.io - 宣布与先前加入的房间的套接字断开连接

我是 socket.io 1.1 的新手。据我了解,在连接丢失/断开连接时,服务器端套接字会自动离开所有房间并被disconnect触发。到disconnect被解雇的时候,socket.rooms已经清零了。

我想向之前加入的房间宣布当前用户已经离开。那些以前连接的房间 ID 是否存储在某个地方?或者, socket.io中是否有某种机制onLeaveRoom或机制可以拦截房间ID?beforeDisconnect

谢谢你的帮助!

0 投票
1 回答
71 浏览

javascript - Socket.IO 事件处理是否可以像 AJAX 调用事件处理声明一样?

当我们在jquery中调用ajax时,我们可以这样写:

这个声明模板/样式是否也可以应用于Socket.IO中的套接字事件处理?

我们可以做类似的事情:

)

谢谢!