所以我使用Haxe NME(HTML5 target ofc)构建了一个简单的websocket客户端实现 它连接到
ws://echo.websocket.org (sorry no link, SO sees this as an invalid domain)
完美无缺! (我正在使用xirsys_stdjs haxelib来使用HTML5 websocket的东西。)
我想在本地(在我自己的机器上)运行websocket 服务器。 我现在正在使用Socket.io,因为我无法找到更简单/更简单的解决方案。
我目前正在尝试使用socket.io作为套接字服务器,但是将“标准”javascript套接字实现为客户端(Haxe HTML5),而不使用socket.io库clientide
有谁知道这是否应该可行?因为我无法让它发挥作用。 这是我的socket.io代码:
var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, fs = require('fs')
app.listen(1337);
function handler (req, res) {
fs.readFile(__dirname + '/client.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading index.html');
}
res.writeHead(200);
res.end(data);
});
}
// WEBSOCKET IMPLEMENTATION
io.sockets.on('connection', function (socket) {
console.log("webSocket connected...");
socket.on('message', function () {
console.log("server recieved something");
// TODO: find out how to access data recieved.
// probably 'msg' parameter, omitted in example?
});
socket.on('disconnect', function () {
console.log("webSocket disconnected.");
});
});
这是我的Haxe(客户端)代码:
static var webSocketEndPoint:String = "ws://echo.websocket.org";
//static var webSocketEndPoint:String = "ws://localhost:1337";
...
private function initializeWebSocket ():Void {
if (untyped __js__('"MozWebSocket" in window') ) {
websocket = new MozWebSocket(webSocketEndPoint);
trace("websocket endpoint: " + webSocketEndPoint);
} else {
websocket = new WebSocket(webSocketEndPoint);
}
// add websocket JS events
websocket.onopen = function (event:Dynamic):Void {
jeash.Lib.trace("websocket opened...");
websocket.send("hello HaXe WebSocket!");
}
websocket.onerror = function (event:Dynamic):Void {
jeash.Lib.trace("websocket erred... " + event.data);
}
websocket.onmessage = function (event:Dynamic):Void {
jeash.Lib.trace("recieved message: " + event.data);
switchDataRecieved(event.data);
}
websocket.onclose = function (event:Dynamic):Void {
jeash.Lib.trace("websocket closed.");
}
}
如果Haxe代码不清楚:它正在为webSocket实现使用2个extern类:MozWebSocket和WebSocket。这些只是相应JavaScript类的“接口”类型。
答案 0 :(得分:4)
websocket.io!来自同一个人。示例显示了您要问的完全相同的事情...以及我花了20个小时搜索的内容(最终找到了!)
https://github.com/LearnBoost/websocket.io
更新:2014年1月
websocket.io存储库大约2年没有看到任何活动。可能是因为它是稳定的,或者可能是因为它被抛弃了。
同一个人有另一个名为engine.io的存储库。在自述文件中,他们说这与websocket.io是同构的......似乎engine.io是最近所有行动的地方。
答案 1 :(得分:0)
在搜索同样的事情时,我发现https://github.com/einaros/ws/并且其服务器示例适用于我预先存在的普通javascript客户端。
答案 2 :(得分:-2)
http://socket.io/#how-to-use 在上述链接中,向下到页面底部, socket.io文档演示了它的最后一次 例如,如何将他们的模块用作普通模块 旧的xbrowser webSocket服务器。
服务器强>
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket)
{
socket.on('message', function () { });
socket.on('disconnect', function () { });
});
<强> BROWSER 强>
<script>
var socket= io.connect('http://localhost/');
socket.on('connect', function ()
{
socket.send('hi');
socket.on('message', function (msg)
{ // my msg
});
});
</script>
希望这就是你要找的东西
- 文档