2011-12-17 2 views
2

Я использую этот код node.js:socket.io не работает в WebKit мобильном телефоне с node.js

var server = require("socket.io").listen(6666); 

server.sockets.on("connection", function(message) 
{ 
     message.on("newMessage", function(data) 
     { 
       server.sockets.emit("sendEvent", data); 
     }); 
}); 

и этот HTML код:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<title>Online chat</title> 
<style> 
body 
{ 
    color: #333; 
    background: #333; 
    font-family: "Helvetica", Arial; 
    font-size: 14px; 
    text-align: center; 
} 
.container 
{ 
    background: #ccc; 
    border-radius: 1em; 
    box-shadow: 0px 5px 5px rgba(0,0,0,0.5); 
    text-shadow: 5px 5px 5px rgba(0,0,0,0.5); 
    margin: 1em auto; 
    padding: 1em; 
    width: 90%; 
} 

input 
{ 
    display: block; 
    font-size: 12px; 
    margin: 1em auto; 
    padding: 0.5em; 
    width: 95%; 
} 

span 
{ 
    display: block; 
    font-size: 12px; 
    margin: 1em auto; 
    padding: 0.5em; 
    width: 95%; 
    text-align: left; 
} 
</style> 
<script src="/resources/js/socket.io.js"></script> 
<script type="text/javascript"> 
<!-- 
var websocket = io.connect("http://localhost:6666"); 

window.onload = function() 
{ 
    websocket.on("sendEvent", function(data) 
    { 
     var chat = document.getElementById('zchat'); 
     var span = document.createElement('span'); 
     var txt = document.createTextNode(data); 
     span.appendChild(txt);    
     if(chat.hasChildNodes()) 
      chat.insertBefore(span, chat.firstChild); 
     else 
      chat.appendChild(span); 
    }); 

    var form = document.getElementById('zform'); 
    var message = document.getElementById('zmessage'); 
    form.onsubmit = function(e) 
    { 
     websocket.emit("newMessage", message.value);  
     return false; 
    }; 
}; 
//--> 
</script> 
</head> 
<body> 
    <div class="container"> 
     <form id="zform"> 
      <label>Message: </label> 
      <input type="text" name="zmessage" id="zmessage" placeholder="Please insert message" required /> 
      <input type="submit" /> 
     </form>  
    </div> 
    <div id="zchat" class="container"> 
    </div> 
</body> 
</html> 

отлично работает с нормальным браузеров, но с помощью зонда с браузером «dolfin» от Samsung bada на базе webkit, и это не сработает, может кто-нибудь его прощупать с помощью другого мобильного браузера? спасибо :)

+0

> О, и Дольфину не следует путать с Дельфином, который является шкурой для Android WebKit. <Не уверен, что Samsung Dolfin использует webkit. :/ –

+0

Я думаю, что для версии node.js я собираюсь использовать последнюю версию :) – ZiTAL

+0

Node.js является серверной, он не должен влиять на конкретный браузер. –

ответ

9

server.js

//... 
var server = require("socket.io").listen(6969); 
//... 

index.html

//... 
var websocket = io.connect("http://192.168.100.103:6969"); 
//... 

я думаю, что порт сатанинского зла для этого, jajajaja и НИКОГДА не использовать локальный, всегда публичный IP на ПК

+1

+1 для порта SATAN =) –

+0

Почему это должно быть 6969? Что случилось с 80 или любым другим? – MichaelS

+0

, чтобы не запускать сервер с правами root – ZiTAL

Смежные вопросы