Tag: 套接字

开始了解networking套接字和http请求(和STOMP)

我最近join了一个新的项目,我负责使用networking套接字来实现stream数据。 这个想法是目前通过HTTP请求(以RESTful的方式)暴露的信息,他们希望通过networking套接字暴露。 在过去的48个小时里,我做了一些关于networking套接字和STOMP的研究,并希望得到以下几点的解释: 因此,对于客户端和服务器通过Web套接字而不是通过HTTP请求/响应进行连接,他们首先需要同意在它们之间build立一个Web套接字连接。 这是通过HTTP GET完成一个唯一的标头传递,说他们要使用一个Web套接字连接,而不是? 理论上说,有一大堆不同的数据通过一些API暴露给浏览器。 想象一下,有很多不同的HTTP请求可以做成GET,POST,DELETE。 所以要把所有这些信息的某些部分通过一个web套接字进行stream式传输,是简单地改变每个资源的当前GET请求来检查这个特殊的websocket头部是否在那里,然后做一些事情? 或者还有其他的东西需要通过networking套接字来暴露某些数据。 如果你从HTTP请求初始化套接字,我可能会误解HTTP和套接字的关系。 我认为这是我的两个主要问题,我相信这些答案将会指引我继续学习更多关于这个主题的正确方向。 我正在试图find任何好的示例代码示例,但我正试图理解这一点,足以在一周内实现。

Socket.IO客户端在返回时接收离线消息

环境: +的NodeJS Socketio 问题: 客户端A和客户端B都连接到服务器; 客户端B离线; 客户端A向客户端B发送消息(客户端B仍然离线); 客户端B再次连接到服务器; [ 问题 ]客户端B无法接收来自A的消息; 服务器代码 var clients = {}; io.sockets.on('connection', function (socket) { socket.on('online', function (data) { if (!clients[data.username]) { clients[data.username] = socket; } io.sockets.emit('message', data.user + 'online now'); }); socket.on('say', function (data) { if (data.to == 'all') { io.sockets.emit('message', data.message); } else { //to specific client clients[data.to].emit('message', […]

如何在node.js中创build一个简单的套接字?

我试图创build一个虚拟套接字用于我的一些testing var net = require("net"); var s = new net.Socket(); s.on("data", function(data) { console.log("data received:", data); }); s.write("hello!"); 得到这个错误 错误:此套接字已closures。 我也试着创build套接字 var s = new net.Socket({allowHalfOpen: true}); 我究竟做错了什么? 作为参考,完整的testing看起来像这样 it("should say hello on connect", function(done) { var socket = new net.Socket(); var client = Client.createClient({socket: socket}); socket.on("data", function(data){ assert.equal("hello", data); done(); }); client.connect(); // writes […]

是否有可能启用tcp,http和websocket都使用相同的端口?

我想在同一个端口上启用tcp , http和websocket.io通信。 我开始使用tcp服务器(部分上面////线),它的工作。 然后我运行了websocket.io (下面的////行)部分find的echo服务器的例子 ,它也工作。 但是,当我尝试将它们合并在一起,tcp不再工作。 那么,是否可以启用tcp,http和websockets都使用相同的端口? 或者我必须在另一个端口上侦听TCP连接? var net = require('net'); var http = require('http'); var wsio = require('websocket.io'); var conn = []; var server = net.createServer(function(client) {//'connection' listener var info = { remote : client.remoteAddress + ':' + client.remotePort }; var i = conn.push(info) – 1; console.log('[conn] ' + conn[i].remote); client.on('end', […]

什么可以做node.js或socket.io?

我们可以用node.js,socket io或任何服务器端JavaScript来做什么? 我知道每一种编程语言或框架都有自己的特点或function,使其不同于其他。 例如,我们专门用jQuery来devise漂亮的UI。 在这个观点上,学习node.js的必要性是什么?

socket.io只广播给在A和B房间的用户

是否有可能将socket.io广播给位于A房间和B房间的命名空间的所有用户,而不是刚好在A房间或B房间的那些用户。 如果没有,我将如何去实施这个自己? 有没有办法检索名字空间中的所有用户在一个给定的房间? 我正在与节点中的socket.io 1.0 编辑:如果没有本地方法,我将如何创build我自己的语法,如: socket.broadcast.in('room1').in('room2').emit(…) ?

Laravel与Redis的广播不工作/连接?

所以我试图在Redis的帮助下播放Laravel 5 Events。 不,我不想使用像Pusher这样的服务,因为它不是免费的(即使免费的限制对我来说是足够的),我想保持对广播服务器的控制。 所以我到目前为止所做的是,我build立了一个redis服务器(侦听端口6379 – >默认),我已经设置了以下事件: class MyEventNameHere extends Event implements ShouldBroadcast { use SerializesModels; public $data; /** * Create a new event instance. * * @return \App\Events\MyEventNameHere */ public function __construct() { $this->data = [ 'power' => 10 ]; } /** * Get the channels the event should be broadcast on. * * […]

Nodejs&套接口io:警告 – 错误引发:错误:听EADDRINUSE

我正在尝试Node.js与socket.io 现在这里是我的情况我是Ubuntu的12.04用户,我有桌面上的文件夹PP 里面,我把服务器文件即app.js 这里是内容 var fs = require('fs') , http = require('http') , socketio = require('socket.io'); var server = http.createServer(function(req, res) { res.writeHead(200, { 'Content-type': 'text/html'}); res.end(fs.readFileSync(__dirname + '/index.html')); }).listen(8080, function() { console.log('Listening at: http://localhost:8080'); }); socketio.listen(server).on('connection', function (socket) { socket.on('message', function (msg) { console.log('Message Received: ', msg); socket.broadcast.emit('message', msg); }); }); 现在在同一个文件夹中,我有另一个文件index.html <html> <head> […]

nodejs https错误:套接字与本地主机挂起

我有这个小的代码片段的目标托pipe在本地主机上的端点 var https = require('https'); var options = { hostname: 'localhost', port: 443, path: '/', method: 'GET', agent: false }; var req = https.request(options, function(res) { console.log("statusCode: ", res.statusCode); console.log("headers: ", res.headers); res.on('data', function(d) { process.stdout.write(d); }); }); req.end(); req.on('error', function(e) { console.error(e); }); 我总是得到错误: {[错误:套接字挂断]代码:'ECONNRESET',sslError:undefined} 看起来,请求甚至不被端点接收,因为它没有被捕获,并且没有超时发生。 如果我从浏览器尝试https:// localhost之类的请求,则发送成功。 如果我只是将代码中的主机更改为诸如encrypted.google.com之类的东西,那么它也可以成功运行。 任何人都知道为什么会这样呢? 编辑 :我也试着添加像接受,用户代理等等的浏览器发送相同的头,但仍然无法正常工作 编辑2 :这是我login时出现的堆栈跟踪: […]

socket.io:无法加载资源

我试图开始使用socket.io和node.js。 在socket.io的网站上的第一个例子后,我在浏览器的控制台中收到以下错误: Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3001/socket.io/socket.io.js Uncaught ReferenceError: io is not defined 这是我的server.js var app = require('express').createServer() , io = require('socket.io').listen(app); app.listen(3001); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.sockets.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function […]