标签: websocket

node.js多房间聊天示例

我正在寻找支持多个房间的websocket/node.js聊天实现.

我也打算写一个需要多个房间或服务器的应用程序,我只是在寻找人们如何做的代码示例.

谢谢.

我知道有一个服务http://pusherapp.com提供这项服务,但我正在寻找一个开源示例.

javascript websocket node.js

63
推荐指数
1
解决办法
4万
查看次数

控制字符的Socket.IO问题

我正在实现一个使用websockets和通过Telnet访问的控制台的应用程序.通过websockets建立的连接与控制台之间存在通信.我遇到了一个奇怪的问题:

  • 如果我在控制台中输入某些内容时将字符串常量发送到已建立的套接字,则它可以正常工作.
  • 如果我发送一个从控制台范围收到的字符串似乎打开一个新的套接字(不确定),因为在调试日志中我看到它,并在浏览器端(websockets)它提醒我一个新的连接.
  • 如果我发送一个本地字符串(而不是从另一个范围收到的字符串),它将被正确发送.(注释行:client.send(message))

我在这里分享nodeJS代码,考虑到这现在是一个测试应用程序所以它假设只有一个套接字和websockets连接:

// Sample based on: http://elegantcode.com/2011/05/04/taking-baby-steps-with-node-js-websockets/
// Changed for sockets.io 6.x => 7.x


var events = require('events');
var eventEmitter = new events.EventEmitter();

var http = require('http');
var socketIO = require('socket.io');
var static = require('node-static');

var port = 2000;

var clientFiles = new static.Server('./client');

var httpServer = http.createServer(
    function(request, response) {
        request.addListener('end', function() { 
            clientFiles.serve(request, response);
       });
    })

httpServer.listen(port);
console.log("Server running at port: " + port);

var io = require('socket.io').listen(httpServer);

var webSocket = io.sockets;

webSocket.on('connection', function(client) { …
Run Code Online (Sandbox Code Playgroud)

javascript websocket node.js socket.io

62
推荐指数
1
解决办法
3613
查看次数

Websocket服务器:从不调用Web套接字上的onopen函数

我正在尝试实现一个C#Web套接字服务器,但它给了我一些麻烦.我正在运行一个Web服务器(ASP.NET)来托管带有javascript的页面,而Web套接字服务器则是作为C#控制台应用程序实现的.

我能够检测来自客户端的连接尝试(运行javascript的chrome)以及从客户端检索握手.但是客户端似乎不接受我发回的握手(onopenWeb套接字上的函数永远不会被调用).

我一直在阅读The Web Socket协议,我看不出我做错了什么.下面是一些服务器代码:

Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
IPEndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8181);
listener.Bind(ep);
listener.Listen(100);
Console.WriteLine("Wainting for connection...");
Socket socketForClient = listener.Accept();
if (socketForClient.Connected)
{
    Console.WriteLine("Client connected");
    NetworkStream networkStream = new NetworkStream(socketForClient);
    System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(networkStream);
    System.IO.StreamReader streamReader = new System.IO.StreamReader(networkStream);

    //read handshake from client:
    Console.WriteLine("HANDSHAKING...");
    char[] shake = new char[255];
    streamReader.Read(shake, 0, 255);

    string handshake =
       "HTTP/1.1 101 Web Socket Protocol Handshake\r\n" +
       "Upgrade: WebSocket\r\n" +
       "Connection: Upgrade\r\n" + …
Run Code Online (Sandbox Code Playgroud)

c# websocket

61
推荐指数
2
解决办法
7万
查看次数

Xmpp与Websocket

我即将开发一个近乎实时聊天的网站.我知道它可以使用xmpp或websocket协议实现.我也知道xmpp协议是在1999年开发的,我想它现在应该是成熟的.另一方面,websocket协议已于2011年开发.

  1. 如果xmpp在处理实时对话方面表现良好,那对websocket的需求是什么?
  2. 两种协议之间的主要区别是什么?
  3. 我何时应该选择其中一个而不是另一个?

java xmpp real-time near-real-time websocket

61
推荐指数
2
解决办法
2万
查看次数

WebSocket和STOMP协议有什么区别?

WebSocket和STOMP协议之间的主要区别是什么?

stomp websocket

59
推荐指数
4
解决办法
3万
查看次数

ReST over websockets可能吗?

我计划开发一个基于Web的聊天应用程序,它接收ReSTful请求,将它们转换为XMPP并将它们传送到XMPP服务器.

对于这种基于聊天的应用程序使用websockets看起来很有希望,因为事件(或响应)可以异步传递.但是,如果我使用websockets作为从浏览器传输请求的底层协议,这仍然可以被视为ReSTful设计吗?如果是,那么在websocket消息中如何表示URI,动词(GET,POST ...)参数?将它们包装在xml/json中并发送它?

此外,ReSTful架构声明服务器上不会存储任何会话状态.但是在这种情况下,当创建XMPP客户端会话时,此会话的状态将存储在服务器上(违反无状态约束)

rest xmpp websocket

58
推荐指数
3
解决办法
5万
查看次数

单元测试Node.js和WebSockets(Socket.io)

任何人都可以使用WebSockets(Socket.io)为Node.js提供坚如磐石,简单的单元测试吗?

我正在为Node.js使用socket.io,并查看了socket.io-client,以便在测试中建立与服务器的客户端连接.但是,我似乎错过了一些东西.

在下面的示例中,"工作......"永远不会打印出来.

var io = require('socket.io-client')
, assert = require('assert')
, expect = require('expect.js');

describe('Suite of unit tests', function() {

    describe('First (hopefully useful) test', function() {

        var socket = io.connect('http://localhost:3001');
        socket.on('connect', function(done) {
            console.log('worked...');
            done();
        });

        it('Doing some things with indexOf()', function() {
            expect([1, 2, 3].indexOf(5)).to.be.equal(-1);
            expect([1, 2, 3].indexOf(0)).to.be.equal(-1);
        });

    });
});
Run Code Online (Sandbox Code Playgroud)

相反,我只是得到:

  Suite of unit tests
    First (hopefully useful) test
      ? Doing some things with indexOf() 


  1 test complete (26 ms)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

unit-testing websocket node.js socket.io

58
推荐指数
3
解决办法
3万
查看次数

node-websocket-server:可以为单个node.js进程提供多个独立的"广播"吗?

我想知道是否可以在同一个node-websocket-server应用程序实例上运行的不同websocket"连接"上进行广播.想象一下,聊天服务器有多个房间,只在单个node.js服务器进程上向每个房间的参与者广播消息.我已成功实现了每个进程一个聊天室的解决方案,但我希望将其提升到新的水平.

websocket node.js

57
推荐指数
3
解决办法
4万
查看次数

使用Websockets代替RESTful HTTP的缺陷是什么?

我目前正在开发一个项目,要求客户端请求大量工作并将其发送到服务器.然后,服务器将作业分开并响应一组URL,以便客户端进行GET调用并回送数据.我是该项目的新手,我目前正在使用Spring websockets来提高效率.而不是客户端不断ping服务器以查看它是否已准备好返回结果,websocket现在只需直接联系客户端万岁!

让websockets从头到尾管理整个过程是不是一个坏主意?我正在使用带有Spring websockets的STOMP,是否仍然存在抛弃REST的主要问题?

rest client-server http websocket spring-websocket

57
推荐指数
2
解决办法
2万
查看次数

WebSockets,UDP和基准测试

HTML5 websockets目前使用TCP通信的形式.然而,对于实时游戏,TCP不会削减它(并且是使用其他平台的很好的理由,如本机).由于我可能需要UDP来继续项目,我想知道HTML6的规格是否支持UDP?

此外,是否有任何可靠的WebSockets基准测试可以将WS协议与低级直接套接字协议进行比较?

performance html5 udp websocket

56
推荐指数
4
解决办法
4万
查看次数