- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 nodejs 服务器无法检测到新浏览器何时连接(“连接”事件),我不知道为什么。我花了几天时间缩小了一个问题的范围,并怀疑这是由于添加了在浏览器上实现的 pubnub 套接字连接所致。
下面是我的server.js
var http = require('http')
, connect = require('connect')
, io = require('socket.io')
, fs = require('fs')
, uuid = require('node-uuid')
, _ = require('lodash');
// pubnub!!! (how to initialize it for use on server)
var pubnub = require('pubnub').init({
channel: "my_channel",
publish_key: "pub-key",
subscribe_key: "sub-c-key",
uuid: "Server",
origin : 'pubsub.pubnub.com'
});
pubnub.subscribe({
channel: 'my_channel',
callback: function(message) {
console.log("Message received: ", message);
},
message: 'Server ready',
presence: function(data) {
console.log("Presense: ", data);
},
connect: publish
});
// various socket.on() events omitted
var app = connect().use(connect.static(__dirname)).use(connect.directory(__dirname));
var server = http.createServer(app);
server.listen(8888);
io = io.listen(server);
io.sockets.on('connection', handleNewPeer);
到达 html 页面后,从脚本标记运行 doConnect(isBroadcaster) 函数
doConnect 函数(在 peer.js 中):
var doConnect = function(isBroadcaster) {
console.log("doConnect");
// broadcaster or normal peer
var user;
if (isBroadcaster)
user = "Broadcaster";
else
user = "Viewer";
(function() {
var pubnub_setup = {
channel: "my_channel",
publish_key: "pub-c-key",
subscribe_key: "sub-c-key",
user: user
};
// Note removed the var
socket = io.connect( 'http://pubsub.pubnub.com', pubnub_setup);
// various socket.on() omitted
})();
这是之前使用 socketIO 时的情况,它是如何工作的:
var doConnect = function(isBroadcaster) {
socket = io.connect();
// various socket.on() omitted
}
我的 p2p 视频网站是通过在 Nodejs + SocketIO 服务器上运行的 WebRTC 实现的。我一直在尝试将 pubnub 合并到其中并认为这很容易,因为 pubnub 支持 SocketIO(或至少支持客户端?)。真的没想到设置服务器端会这么难。
对此有任何意见吗?我认为这很简单,我就是无法理解
最佳答案
带有 PubNub 的 Socket.IO 不提供 Node.JS Socket.IO 后端选项。但是,您可以直接将 PubNub SDK 用于连接事件。
npm install pubnub
安装 PubNub NPM 后,您可以使用 node.js 服务器后端:
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// PubNub!!! (how to initialize it for use on server)
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
var pubnub = require('pubnub').init({
publish_key : "pub-key",
subscribe_key : "sub-c-key",
uuid : "Server-ID"
});
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// On user Connect
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function on_user_connect(data) {
console.log( "User Connected: ", data.uuid );
}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// On user Leave
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
function on_user_leave(data) {
console.log( "User Left: ", data.uuid );
}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// Open Socket Connection for User Join Events
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
pubnub.subscribe({
channel : 'my_channel',
connect : connected
message : function(message) {
console.log("Message received: ", message);
},
presence : function(data) {
if (data.action == "leave") on_user_leave(data);
if (data.action == "timeout") on_user_leave(data);
if (data.action == "join") on_user_connect(data);
}
});
function connected() {
console.log('connected!');
}
关于javascript - Nodejs 服务器无法检测到与 Pubnub+SocketIO 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24376490/
我正在选择一个 python 库来编写一个嵌入我网站的实时聊天功能页面。 我找到了两个基于 Socket.IO 的库,python-socketio 和 gevent-socketio: 来自 pyt
我正在使用 socketio 和 netty 以及 java,我对它们都是新手。 我的客户端代码如下所示。 webSocket test
我正在尝试在外部值发生变化时发送广播。 Camonitor 在值改变时调用回调,我想通知所有连接的客户端值已经改变,他们需要刷新。 from flask import Flask from epics
我在使用 flasks socketio 时遇到了问题,似乎当我调用 socketio.emit('my event', 'my message') 时它根本不会发出任何事件。 .. 所以这是我的设置
我有一个 socketio 服务器/客户端可以很好地协同工作,但是我想开始为服务器在页面加载或正常运行期间脱机时编写事件。 我在我的头文件中包含了远程 socket.io 代码: /socket.io
我正在使用 flask-socketio 和 python-socketio 开发一个项目。为了确保通信安全,系统需要使用 SSL 进行升级。我正在使用 Mac 和 Python 3.7。 我使用 o
我目前正在尝试了解套接字的工作原理。我正在使用 Flask-socketio 和 python socketio 客户端并运行一个基本示例。这是我到目前为止所做的 应用.py from flask i
我正在尝试使用 Socket.IO 开发一个聊天应用程序。我的服务器端是安装了 express + socket.io 库的 Node.js,我的客户端是 Android + Web。 我尝试在我的客
我正在构建一个 Android 聊天应用程序。我在服务器端使用 nodejs 并尝试实现 android client for socketIO.我收到 SocketIO 异常。代码有什么问题? 服务
我将 Flask 与 gevent-socketio 一起使用: $ cat requirements.txt Flask==0.10.1 Jinja2==2.7.1 MarkupSafe==0.18
我正在为某个项目使用 netty-socketio。我像这样设置了一个服务器: Configuration config = new Configuration(); config.setHostna
所以,我需要收集很多数据,比如每秒 3 个单位的数据,由很多人收集。我将收集此数据的事件命名为“捕获”。 我正在使用 JWT 对其他数据密集度较低的事件进行身份验证。 现在,我只是担心使用每个数据密集
socketio不仅可以用来做聊天工具,也可以实现局域网(当然你如果有外网也可用外网)内实现文件的上传和下载,下面是代码的效果演示: git地址: https://github.com/fen
我正在使用 flask-socketio 创建一个聊天应用程序,现在我想在客户端断开连接时使用客户端的用户名向服务器发送一条消息,即当客户端关闭浏览器/选项卡时,以便我可以将该消息从服务器发送到所有现
我正在尝试向从单独文件连接的所有套接字发出。但是我似乎无法弄清楚。 Socket.js var socketio = require('socket.io'); var users = require
我尝试在我的 django 应用程序中实现与 django-socketio 的聊天。 首先要了解django-socketio,所以看了https://github.com/stephenmcd/d
我对网络编程有点陌生。我现在正在尝试编写一个服务器。在服务器端我有一个方法: socket.on("joinserver", function(name, device) { }); 在客户端,
我正在尝试将数据从客户端发送到服务器端。我只得到未定义。我希望用户单击 ledOn 函数来发送 1 ,并单击 ledOff 来发送 0 到服务器。 server.js io.sockets.on('c
我使用nodejs设置了一个简单的Socket服务器gameIo gameIo.on("connection", socket => { socket.on("sign up", () => {
我想知道是否有一种方法可以在两个(或多个)flask-socketio 服务器之间直接通信。我想在服务器之间传递信息,并让客户端连接单个 Web 套接字服务器,该服务器将具有来自其他服务器的所有组合逻
我是一名优秀的程序员,十分优秀!